Browse Source

Fix syntax error for a missing package name

gingerBill 4 years ago
parent
commit
ae25787f48
1 changed files with 8 additions and 2 deletions
  1. 8 2
      src/parser.cpp

+ 8 - 2
src/parser.cpp

@@ -5428,8 +5428,14 @@ ParseFileError process_imported_file(Parser *p, ImportedFile const &imported_fil
 
 		if (pkg->name.len == 0) {
 			pkg->name = file->package_name;
-		} else if (file->tokens.count > 0 && pkg->name != file->package_name) {
-			syntax_error(file->package_token, "Different package name, expected '%.*s', got '%.*s'", LIT(pkg->name), LIT(file->package_name));
+		} else if (pkg->name != file->package_name) {
+			if (file->tokens.count > 0 && file->tokens[0].kind != Token_EOF) {
+				Token tok = file->package_token;
+				tok.pos.file_id = file->id;
+				tok.pos.line = gb_max(tok.pos.line, 1);
+				tok.pos.column = gb_max(tok.pos.column, 1);
+				syntax_error(tok, "Different package name, expected '%.*s', got '%.*s'", LIT(pkg->name), LIT(file->package_name));
+			}
 		}
 
 		p->total_line_count += file->tokenizer.line_count;