aboutsummaryrefslogtreecommitdiff
path: root/src/parser.cpp
diff options
context:
space:
mode:
authorFeoramund <161657516+Feoramund@users.noreply.github.com>2024-09-20 19:02:00 -0400
committerFeoramund <161657516+Feoramund@users.noreply.github.com>2024-09-20 19:02:00 -0400
commit84700e09c9903e5e40badb829b599dd67886f68c (patch)
tree2383e0391fb691328a5665ce37189f5e9ef6317c /src/parser.cpp
parenta4dd4892846c73d21793138f518fc4b877aebca8 (diff)
Forbid parsing more fields if no separator was found
Fixes #4278
Diffstat (limited to 'src/parser.cpp')
-rw-r--r--src/parser.cpp6
1 files changed, 5 insertions, 1 deletions
diff --git a/src/parser.cpp b/src/parser.cpp
index 520a23c5a..5b4604c6d 100644
--- a/src/parser.cpp
+++ b/src/parser.cpp
@@ -4377,10 +4377,14 @@ gb_internal Ast *parse_field_list(AstFile *f, isize *name_count_, u32 allowed_fl
}
}
- allow_field_separator(f);
+ bool more_fields = allow_field_separator(f);
Ast *param = ast_field(f, names, type, default_value, set_flags, tag, docs, f->line_comment);
array_add(&params, param);
+ if (!more_fields) {
+ if (name_count_) *name_count_ = total_name_count;
+ return ast_field_list(f, start_token, params);
+ }
while (f->curr_token.kind != follow &&
f->curr_token.kind != Token_EOF &&