diff options
| author | gingerBill <gingerBill@users.noreply.github.com> | 2024-08-30 09:56:36 +0100 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2024-08-30 09:56:36 +0100 |
| commit | 291048cb3bdb7f1dc7d57383a1efd6fe77677768 (patch) | |
| tree | 1f0e991dbef2475a4533381b76cf8b7f58eeaf3c /src/checker.cpp | |
| parent | 94a1a7aed567dd20eddfdc62044f4154d4530bab (diff) | |
| parent | 3135c89a0aed7528baba4ec8d45a6c2549862007 (diff) | |
Merge pull request #4165 from avanspector/master
Add missing lexer checking delay for foreign blocks
Diffstat (limited to 'src/checker.cpp')
| -rw-r--r-- | src/checker.cpp | 9 |
1 files changed, 4 insertions, 5 deletions
diff --git a/src/checker.cpp b/src/checker.cpp index fdc1ce840..d5234c01c 100644 --- a/src/checker.cpp +++ b/src/checker.cpp @@ -5228,9 +5228,9 @@ gb_internal bool collect_file_decl(CheckerContext *ctx, Ast *decl) { case_end; case_ast_node(fb, ForeignBlockDecl, decl); - if (check_add_foreign_block_decl(ctx, decl)) { - return true; - } + GB_ASSERT(ctx->collect_delayed_decls); + decl->state_flags |= StateFlag_BeenHandled; + array_add(&curr_file->delayed_decls_queues[AstDelayQueue_ForeignBlock], decl); case_end; case_ast_node(ws, WhenStmt, decl); @@ -5513,8 +5513,6 @@ gb_internal void check_import_entities(Checker *c) { for_array(i, pkg->files) { AstFile *f = pkg->files[i]; reset_checker_context(&ctx, f, &untyped); - ctx.collect_delayed_decls = false; - correct_type_aliases_in_scope(&ctx, pkg->scope); } @@ -5522,6 +5520,7 @@ gb_internal void check_import_entities(Checker *c) { AstFile *f = pkg->files[i]; reset_checker_context(&ctx, f, &untyped); + ctx.collect_delayed_decls = true; for (Ast *decl : f->delayed_decls_queues[AstDelayQueue_ForeignBlock]) { check_add_foreign_block_decl(&ctx, decl); } |