aboutsummaryrefslogtreecommitdiff
path: root/src/parser.cpp
diff options
context:
space:
mode:
authorKarl Zylinski <karl@zylinski.se>2024-09-14 14:32:46 +0200
committerKarl Zylinski <karl@zylinski.se>2024-09-14 14:32:46 +0200
commit8b84b9a4a26d7f2fb07a7e5dcd49b678d1c9be91 (patch)
tree7cc67936b8f65c6f663543f3fae9f87dcee5ac2d /src/parser.cpp
parent86e291235dd7225e3ce21c916a68efba0bd9232c (diff)
Docs are generated as expected again.
Diffstat (limited to 'src/parser.cpp')
-rw-r--r--src/parser.cpp12
1 files changed, 7 insertions, 5 deletions
diff --git a/src/parser.cpp b/src/parser.cpp
index 51da21e9d..523dad8b8 100644
--- a/src/parser.cpp
+++ b/src/parser.cpp
@@ -6388,9 +6388,13 @@ gb_internal bool parse_file(Parser *p, AstFile *f) {
String filepath = f->tokenizer.fullpath;
String base_dir = dir_from_path(filepath);
+ if (f->curr_token.kind == Token_Comment) {
+ consume_comment_groups(f, f->prev_token);
+ }
- Array<Token> tags = array_make<Token>(ast_allocator(f));
+ CommentGroup *docs = f->lead_comment;
+ Array<Token> tags = array_make<Token>(temporary_allocator());
bool first_invalid_token_set = false;
Token first_invalid_token = {};
@@ -6410,8 +6414,6 @@ gb_internal bool parse_file(Parser *p, AstFile *f) {
}
}
- CommentGroup *docs = f->lead_comment;
-
if (f->curr_token.kind != Token_package) {
ERROR_BLOCK();
@@ -6451,6 +6453,8 @@ gb_internal bool parse_file(Parser *p, AstFile *f) {
}
f->package_name = package_name.string;
+ // TODO: Shouldn't single file only matter for build tags? no-instrumentation for example
+ // should be respected even when in single file mode.
if (!f->pkg->is_single_file) {
if (docs != nullptr && docs->list.count > 0) {
for (Token const &tok : docs->list) {
@@ -6485,8 +6489,6 @@ gb_internal bool parse_file(Parser *p, AstFile *f) {
}
}
- array_free(&tags);
-
Ast *pd = ast_package_decl(f, f->package_token, package_name, docs, f->line_comment);
expect_semicolon(f);
f->pkg_decl = pd;