Skip to content

Commit

Permalink
Improve -strict-style rules for if-else statements
Browse files Browse the repository at this point in the history
  • Loading branch information
gingerBill committed Jun 29, 2024
1 parent b1a1da6 commit 34fce83
Showing 1 changed file with 12 additions and 4 deletions.
16 changes: 12 additions & 4 deletions src/parser.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -1486,15 +1486,15 @@ gb_internal bool skip_possible_newline(AstFile *f) {
return false;
}

gb_internal bool skip_possible_newline_for_literal(AstFile *f, bool seen_where=false) {
gb_internal bool skip_possible_newline_for_literal(AstFile *f, bool ignore_strict_style=false) {
Token curr = f->curr_token;
if (token_is_newline(curr)) {
Token next = peek_token(f);
if (curr.pos.line+1 >= next.pos.line) {
switch (next.kind) {
case Token_OpenBrace:
case Token_else:
if (build_context.strict_style && !seen_where) {
if (build_context.strict_style && !ignore_strict_style) {
syntax_error(next, "With '-strict-style' the attached brace style (1TBS) is enforced");
}
/*fallthrough*/
Expand Down Expand Up @@ -4548,7 +4548,11 @@ gb_internal Ast *parse_if_stmt(AstFile *f) {
body = parse_block_stmt(f, false);
}

skip_possible_newline_for_literal(f);
bool ignore_strict_style = false;
if (token.pos.line == ast_end_token(body).pos.line) {
ignore_strict_style = true;
}
skip_possible_newline_for_literal(f, ignore_strict_style);
if (f->curr_token.kind == Token_else) {
Token else_token = expect_token(f, Token_else);
switch (f->curr_token.kind) {
Expand Down Expand Up @@ -4600,7 +4604,11 @@ gb_internal Ast *parse_when_stmt(AstFile *f) {
body = parse_block_stmt(f, true);
}

skip_possible_newline_for_literal(f);
bool ignore_strict_style = false;
if (token.pos.line == ast_end_token(body).pos.line) {
ignore_strict_style = true;
}
skip_possible_newline_for_literal(f, ignore_strict_style);
if (f->curr_token.kind == Token_else) {
Token else_token = expect_token(f, Token_else);
switch (f->curr_token.kind) {
Expand Down

0 comments on commit 34fce83

Please sign in to comment.