Browse Source

If missing type is newline, print "newline", not \n

Turns:

W:/Odin/bug/bug.odin(3:27) Syntax Error: Expected a type, got '
'
        Storage :: distinct map[]

Into:

W:/Odin/bug/bug.odin(3:27) Syntax Error: Expected a type, got newline
        Storage :: distinct map[]
Jeroen van Rijn 1 year ago
parent
commit
9553bc3689
1 changed files with 6 additions and 1 deletions
  1. 6 1
      src/parser.cpp

+ 6 - 1
src/parser.cpp

@@ -3560,7 +3560,12 @@ gb_internal Ast *parse_type(AstFile *f) {
 		} else {
 			token = advance_token(f);
 		}
-		syntax_error(token, "Expected a type, got '%.*s'", LIT(prev_token.string));
+		String prev_token_str = prev_token.string;
+		if (prev_token_str == str_lit("\n")) {
+			syntax_error(token, "Expected a type, got newline");
+		} else {
+			syntax_error(token, "Expected a type, got '%.*s'", LIT(prev_token_str));
+		}
 		return ast_bad_expr(f, token, f->curr_token);
 	} else if (type->kind == Ast_ParenExpr &&
 	           unparen_expr(type) == nullptr) {