Disallow sharing files between modules
This commit is contained in:
15
parsing.cpp
15
parsing.cpp
@@ -719,13 +719,19 @@ enum{
|
||||
function Ast_File *
|
||||
register_ast_file(Token *pos, Intern_String filename, Ast_Module *module, B32 global_implicit_load){
|
||||
Ast_File *file = 0;
|
||||
For(module->all_loaded_files){
|
||||
For(pctx->files){
|
||||
if(it->filename == filename){
|
||||
log_info("%Q :: Returning registered file: %Q\n", module->name, filename);
|
||||
file = it;
|
||||
break;
|
||||
if(module == it->module){
|
||||
log_info("%Q :: Returning registered file: %Q\n", module->name, filename);
|
||||
file = it;
|
||||
break;
|
||||
}
|
||||
|
||||
print_token_context(it->pos);
|
||||
compiler_error(pos, "This file is already loaded by module: %Q, try importing that module to get access to it", module->name);
|
||||
}
|
||||
}
|
||||
|
||||
if(!file){
|
||||
log_info("%Q :: Registering file: %Q\n", module->name, filename);
|
||||
AST_NEW(File, FILE, 0, 0);
|
||||
@@ -737,6 +743,7 @@ register_ast_file(Token *pos, Intern_String filename, Ast_Module *module, B32 gl
|
||||
file->decls = {pctx->heap};
|
||||
file->implicit_imports = {pctx->heap};
|
||||
file->module->all_loaded_files.add(file);
|
||||
pctx->files.add(file);
|
||||
file->pos = pos;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user