From 4093026a9adad43f73f03b625bb40b0139a54525 Mon Sep 17 00:00:00 2001 From: gingerBill Date: Thu, 30 Jan 2025 11:36:12 +0000 Subject: [PATCH] Clean up `@(export) foreign import` code --- src/checker.cpp | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/src/checker.cpp b/src/checker.cpp index da2e0cda9..0ac787e00 100644 --- a/src/checker.cpp +++ b/src/checker.cpp @@ -5184,19 +5184,20 @@ gb_internal void check_add_foreign_import_decl(CheckerContext *ctx, Ast *decl) { GB_ASSERT(fl->library_name.pos.line != 0); fl->library_name.string = library_name; + AttributeContext ac = {}; + check_decl_attributes(ctx, fl->attributes, foreign_import_decl_attribute, &ac); + + Scope *scope = parent_scope; + if (ac.is_export) { + scope = parent_scope->parent; + } + Entity *e = alloc_entity_library_name(parent_scope, fl->library_name, t_invalid, fl->fullpaths, library_name); e->LibraryName.decl = decl; add_entity_flags_from_file(ctx, e, parent_scope); + add_entity(ctx, scope, nullptr, e); - AttributeContext ac = {}; - check_decl_attributes(ctx, fl->attributes, foreign_import_decl_attribute, &ac); - - if (ac.is_export) { - add_entity(ctx, parent_scope->pkg->scope, nullptr, e); - } else { - add_entity(ctx, parent_scope, nullptr, e); - } if (ac.require_declaration) { mpsc_enqueue(&ctx->info->required_foreign_imports_through_force_queue, e);