From 9866c83d619d9d32154ab1452bdbd255f3510bf7 Mon Sep 17 00:00:00 2001 From: avanspector Date: Thu, 29 Aug 2024 23:43:01 +0200 Subject: [PATCH 1/2] Add missing checker delaying --- src/checker.cpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/checker.cpp b/src/checker.cpp index fdc1ce840..bab2d9f86 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); From 47f423c12386c2d886bb8a5a8ab70e80364f9c66 Mon Sep 17 00:00:00 2001 From: avanspector Date: Fri, 30 Aug 2024 01:32:06 +0200 Subject: [PATCH 2/2] Set a flag for delayed checking --- src/checker.cpp | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/checker.cpp b/src/checker.cpp index bab2d9f86..d5234c01c 100644 --- a/src/checker.cpp +++ b/src/checker.cpp @@ -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); }