From ccfcc654a5ea06257e28cf3350dad08f67ef202e Mon Sep 17 00:00:00 2001 From: Mark Thom Date: Sat, 26 Oct 2019 12:39:42 -0600 Subject: [PATCH] remove module from toplevel in unqualified use_module --- src/prolog/machine/mod.rs | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/src/prolog/machine/mod.rs b/src/prolog/machine/mod.rs index 6bf23eb4..c24e82e8 100644 --- a/src/prolog/machine/mod.rs +++ b/src/prolog/machine/mod.rs @@ -443,10 +443,13 @@ impl Machine { let load_result = match to_src(name) { ModuleSource::Library(name) => - if !self.indices.modules.contains_key(&name) { - load_library(self, name, false) - } else { + if let Some(module) = self.indices.take_module(name.clone()) { + self.indices.remove_module(clause_name!("user"), &module); + self.indices.modules.insert(name.clone(), module); + Ok(name) + } else { + load_library(self, name, false) }, ModuleSource::File(name) => load_module_from_file(self, name.as_str(), false) @@ -489,7 +492,7 @@ impl Machine { self.indices.modules.insert(name.clone(), module); Ok(name) - } else { + } else { load_library(self, name, false) }, ModuleSource::File(name) => -- 2.54.0