Browse Source

Simplify `expect_semicolon_newline_error` rule

gingerBill 4 years ago
parent
commit
8f6439fa6b
1 changed files with 13 additions and 18 deletions
  1. 13 18
      src/parser.cpp

+ 13 - 18
src/parser.cpp

@@ -1536,25 +1536,20 @@ bool is_semicolon_optional_for_node(AstFile *f, Ast *s) {
 }
 }
 
 
 void expect_semicolon_newline_error(AstFile *f, Token const &token, Ast *s) {
 void expect_semicolon_newline_error(AstFile *f, Token const &token, Ast *s) {
-	if (build_context.strict_style) {
-		if (f->curr_proc != nullptr && token.string == "\n") {
-			switch (token.kind) {
-			case Token_CloseBrace:
-			case Token_CloseParen:
-			case Token_else:
-			case Token_EOF:
-				return;
-			}
-			if (s != nullptr) {
-				if (is_semicolon_optional_for_node(f, s)) {
-					return;
-				}
-			}
-
-			Token tok = token;
-			tok.pos.column -= 1;
-			syntax_error(tok, "Expected ';', got newline");
+	if (build_context.strict_style && token.string == "\n") {
+		switch (token.kind) {
+		case Token_CloseBrace:
+		case Token_CloseParen:
+		case Token_else:
+			return;
 		}
 		}
+		if (is_semicolon_optional_for_node(f, s)) {
+			return;
+		}
+
+		Token tok = token;
+		tok.pos.column -= 1;
+		syntax_error(tok, "Expected ';', got newline");
 	}
 	}
 }
 }