diff options
Diffstat (limited to 'src/parser.cpp')
| -rw-r--r-- | src/parser.cpp | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/src/parser.cpp b/src/parser.cpp index fe421f7db..4433a0a7f 100644 --- a/src/parser.cpp +++ b/src/parser.cpp @@ -1497,7 +1497,19 @@ void assign_removal_flag_to_semicolon(AstFile *f) { Token *curr_token = &f->tokens[f->curr_token_index]; GB_ASSERT(prev_token->kind == Token_Semicolon); if (prev_token->string == ";") { + bool ok = false; if (curr_token->pos.line > prev_token->pos.line) { + ok = true; + } else if (curr_token->pos.line == prev_token->pos.line) { + switch (curr_token->kind) { + case Token_CloseBrace: + case Token_CloseParen: + ok = true; + break; + } + } + + if (ok) { if (build_context.strict_style) { syntax_error(*prev_token, "Found unneeded semicolon"); } |