aboutsummaryrefslogtreecommitdiff
path: root/src/parser.hpp
diff options
context:
space:
mode:
authorgingerBill <gingerBill@users.noreply.github.com>2026-01-15 16:32:52 +0000
committergingerBill <gingerBill@users.noreply.github.com>2026-01-15 16:32:52 +0000
commit0366cd3304b3910a397c4989e46bee4c575adeec (patch)
treef75675c69bcafcd7020e97cfd17565d31eae7c4b /src/parser.hpp
parent7f509c01f1c912e2d4ccf5d8f1a029167fff107e (diff)
Add `#must_tail` (similar syntax to `#force_inline`
Diffstat (limited to 'src/parser.hpp')
-rw-r--r--src/parser.hpp13
1 files changed, 10 insertions, 3 deletions
diff --git a/src/parser.hpp b/src/parser.hpp
index 71b61d95f..30b11c730 100644
--- a/src/parser.hpp
+++ b/src/parser.hpp
@@ -263,12 +263,17 @@ struct ForeignFileWorkerData {
-enum ProcInlining {
- ProcInlining_none = 0,
- ProcInlining_inline = 1,
+enum ProcInlining : u8 {
+ ProcInlining_none = 0,
+ ProcInlining_inline = 1,
ProcInlining_no_inline = 2,
};
+enum ProcTailing : u8 {
+ ProcTailing_none = 0,
+ ProcTailing_must_tail = 1,
+};
+
enum ProcTag {
ProcTag_bounds_check = 1<<0,
ProcTag_no_bounds_check = 1<<1,
@@ -441,6 +446,7 @@ struct AstSplitArgs {
Ast *body; \
u64 tags; \
ProcInlining inlining; \
+ ProcTailing tailing; \
Token where_token; \
Slice<Ast *> where_clauses; \
DeclInfo *decl; \
@@ -486,6 +492,7 @@ AST_KIND(_ExprBegin, "", bool) \
Token close; \
Token ellipsis; \
ProcInlining inlining; \
+ ProcTailing tailing; \
bool optional_ok_one; \
bool was_selector; \
AstSplitArgs *split_args; \