mirror of
https://github.com/Ed94/Odin.git
synced 2026-08-06 23:58:50 +00:00
Merge pull request #4165 from avanspector/master
Add missing lexer checking delay for foreign blocks
This commit is contained in:
+4
-5
@@ -5228,9 +5228,9 @@ gb_internal bool collect_file_decl(CheckerContext *ctx, Ast *decl) {
|
|||||||
case_end;
|
case_end;
|
||||||
|
|
||||||
case_ast_node(fb, ForeignBlockDecl, decl);
|
case_ast_node(fb, ForeignBlockDecl, decl);
|
||||||
if (check_add_foreign_block_decl(ctx, decl)) {
|
GB_ASSERT(ctx->collect_delayed_decls);
|
||||||
return true;
|
decl->state_flags |= StateFlag_BeenHandled;
|
||||||
}
|
array_add(&curr_file->delayed_decls_queues[AstDelayQueue_ForeignBlock], decl);
|
||||||
case_end;
|
case_end;
|
||||||
|
|
||||||
case_ast_node(ws, WhenStmt, decl);
|
case_ast_node(ws, WhenStmt, decl);
|
||||||
@@ -5513,8 +5513,6 @@ gb_internal void check_import_entities(Checker *c) {
|
|||||||
for_array(i, pkg->files) {
|
for_array(i, pkg->files) {
|
||||||
AstFile *f = pkg->files[i];
|
AstFile *f = pkg->files[i];
|
||||||
reset_checker_context(&ctx, f, &untyped);
|
reset_checker_context(&ctx, f, &untyped);
|
||||||
ctx.collect_delayed_decls = false;
|
|
||||||
|
|
||||||
correct_type_aliases_in_scope(&ctx, pkg->scope);
|
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];
|
AstFile *f = pkg->files[i];
|
||||||
reset_checker_context(&ctx, f, &untyped);
|
reset_checker_context(&ctx, f, &untyped);
|
||||||
|
|
||||||
|
ctx.collect_delayed_decls = true;
|
||||||
for (Ast *decl : f->delayed_decls_queues[AstDelayQueue_ForeignBlock]) {
|
for (Ast *decl : f->delayed_decls_queues[AstDelayQueue_ForeignBlock]) {
|
||||||
check_add_foreign_block_decl(&ctx, decl);
|
check_add_foreign_block_decl(&ctx, decl);
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user