diff --git a/ast.cpp b/ast.cpp index 9919840..1ebb2ec 100644 --- a/ast.cpp +++ b/ast.cpp @@ -566,20 +566,6 @@ ast_module_namespace(Token *pos, Ast_Module *module, Intern_String name){ return result; } -function Ast_Module * -ast_module(Token *pos, Intern_String filename){ - AST_NEW(Module, MODULE, pos, 0); - result->parent_scope = 0; - result->kind = AST_MODULE; - result->name = filename; - result->module = result; - result->file = result; - result->all_loaded_files = {pctx->heap}; - result->implicit_imports = {pctx->heap}; - result->decls = {pctx->heap}; - return result; -} - function Ast_Builtin * ast_runtime_assert(Token *pos, Ast_Expr *expr, Intern_String message){ AST_NEW(Builtin, RUNTIME_ASSERT, pos, AST_EXPR); diff --git a/c_language_codegen.cpp b/c_language_codegen.cpp index e41360d..7028283 100644 --- a/c_language_codegen.cpp +++ b/c_language_codegen.cpp @@ -794,8 +794,16 @@ add_module(Token *pos, Intern_String filename){ } log_info("Adding module: %Q\n", filename); - Ast_Module *result = ast_module(pos, filename); - register_ast_file(pos, result->name, result, true); + Ast_Module *result = ast_new(Ast_Module, AST_MODULE, pos, 0); + result->name = filename; + result->module = result; // @warning: self referential + result->file = result; // @warning: self referential + result->all_loaded_files = {pctx->heap}; + result->implicit_imports = {pctx->heap}; + result->decls = {pctx->heap}; + result->parent_scope = 0; + + register_ast_file(pos, result->name, result, GLOBAL_IMPLICIT_LOAD); pctx->modules.add(result); return result; }