import builtins to dynamically generated modules unless builtins is being defined

This commit is contained in:
Mark Thom
2021-05-02 11:01:17 -06:00
parent b21a096516
commit f552564fc1

View File

@@ -870,7 +870,14 @@ impl<'a> LoadState<'a> {
}; };
let listing_src = ListingSource::DynamicallyGenerated; let listing_src = ListingSource::DynamicallyGenerated;
let module = Module::new(module_decl, listing_src); let mut module = Module::new(module_decl, listing_src);
self.import_builtins_in_module(
module_name.clone(),
&mut module.code_dir,
&mut module.op_dir,
&mut module.meta_predicates,
);
self.retraction_info self.retraction_info
.push_record(RetractionRecord::AddedModule(module_name.clone())); .push_record(RetractionRecord::AddedModule(module_name.clone()));
@@ -880,14 +887,21 @@ impl<'a> LoadState<'a> {
fn import_builtins_in_module( fn import_builtins_in_module(
&mut self, &mut self,
module_name: ClauseName,
code_dir: &mut CodeDir, code_dir: &mut CodeDir,
op_dir: &mut OpDir, op_dir: &mut OpDir,
meta_predicates: &mut MetaPredicateDir, meta_predicates: &mut MetaPredicateDir,
) { ) {
if let Some(builtins) = self.wam.indices.modules.get(&clause_name!("builtins")) { if let Some(builtins) = self.wam.indices.modules.get(&clause_name!("builtins")) {
let module_compilation_target = CompilationTarget::Module(module_name);
if CompilationTarget::Module(clause_name!("builtins")) == self.compilation_target {
return;
}
import_module_exports( import_module_exports(
&mut self.retraction_info, &mut self.retraction_info,
&self.compilation_target, &module_compilation_target,
builtins, builtins,
code_dir, code_dir,
op_dir, op_dir,
@@ -974,6 +988,7 @@ impl<'a> LoadState<'a> {
}; };
self.import_builtins_in_module( self.import_builtins_in_module(
module_name.clone(),
&mut module.code_dir, &mut module.code_dir,
&mut module.op_dir, &mut module.op_dir,
&mut module.meta_predicates, &mut module.meta_predicates,