exports: vec![],
};
- if !loader.load_state.wam.indices.modules.contains_key(&module_decl.name) {
- let module_name = module_decl.name.clone();
- let module = Module::new(module_decl, ListingSource::DynamicallyGenerated);
+ let module_name = module_decl.name.clone();
+ if !loader.load_state.wam.indices.modules.contains_key(&module_decl.name) {
+ let module = Module::new_in_situ(module_decl);
loader.load_state.wam.indices.modules.insert(module_name, module);
} else {
loader.load_state.reset_in_situ_module(
module_decl.clone(),
&ListingSource::DynamicallyGenerated,
);
+
+ match loader.load_state.wam.indices.modules.get_mut(&module_name) {
+ Some(module) => {
+ for (key, value) in module.op_dir.drain(0 ..) {
+ let (prec, spec) = value.shared_op_desc().get();
+ let mut op_decl = OpDecl::new(prec, spec, key.0);
+
+ op_decl.remove(&mut loader.load_state.wam.indices.op_dir);
+ }
+ }
+ None => {
+ }
+ }
}
}
key: &PredicateKey,
) -> Option<&mut PredicateSkeleton> {
match (key.0.as_str(), key.1) {
- ("term_expansion", 2) => self.extensible_predicates.get_mut(key),
+// ("term_expansion", 2) => self.extensible_predicates.get_mut(key),
_ => match compilation_target {
CompilationTarget::User => self.extensible_predicates.get_mut(key),
CompilationTarget::Module(ref module_name) => {
local_compilation_target: CompilationTarget,
key: PredicateKey,
) -> Option<&mut PredicateSkeleton> {
- match (key.0.as_str(), key.1) {
- ("term_expansion", 2) => self
+ match src_compilation_target {
+ CompilationTarget::User => self
.local_extensible_predicates
.get_mut(&(local_compilation_target, key)),
- _ => match src_compilation_target {
- CompilationTarget::User => self
- .local_extensible_predicates
- .get_mut(&(local_compilation_target, key)),
- CompilationTarget::Module(ref module_name) => {
- if let Some(module) = self.modules.get_mut(module_name) {
- module
- .local_extensible_predicates
- .get_mut(&(local_compilation_target, key))
- } else {
- None
- }
+ CompilationTarget::Module(ref module_name) => {
+ if let Some(module) = self.modules.get_mut(module_name) {
+ module
+ .local_extensible_predicates
+ .get_mut(&(local_compilation_target, key))
+ } else {
+ None
}
- },
+ }
}
}
local_compilation_target: CompilationTarget,
key: PredicateKey,
) -> Option<&PredicateSkeleton> {
- match (key.0.as_str(), key.1) {
- ("term_expansion", 2) => self
+ match src_compilation_target {
+ CompilationTarget::User => self
.local_extensible_predicates
.get(&(local_compilation_target, key)),
- _ => match src_compilation_target {
- CompilationTarget::User => self
- .local_extensible_predicates
- .get(&(local_compilation_target, key)),
- CompilationTarget::Module(ref module_name) => {
- if let Some(module) = self.modules.get(module_name) {
- module
- .local_extensible_predicates
- .get(&(local_compilation_target, key))
- } else {
- None
- }
+ CompilationTarget::Module(ref module_name) => {
+ if let Some(module) = self.modules.get(module_name) {
+ module
+ .local_extensible_predicates
+ .get(&(local_compilation_target, key))
+ } else {
+ None
}
- },
+ }
}
}
compilation_target: &CompilationTarget,
key: &PredicateKey,
) -> Option<&PredicateSkeleton> {
- match (key.0.as_str(), key.1) {
- ("term_expansion", 2) => self.extensible_predicates.get(key),
- _ => match compilation_target {
- CompilationTarget::User => self.extensible_predicates.get(key),
- CompilationTarget::Module(ref module_name) => {
- if let Some(module) = self.modules.get(module_name) {
- module.extensible_predicates.get(key)
- } else {
- None
- }
+ match compilation_target {
+ CompilationTarget::User => self.extensible_predicates.get(key),
+ CompilationTarget::Module(ref module_name) => {
+ if let Some(module) = self.modules.get(module_name) {
+ module.extensible_predicates.get(key)
+ } else {
+ None
}
- },
+ }
}
}
compilation_target: &CompilationTarget,
key: &PredicateKey,
) -> Option<PredicateSkeleton> {
- match (key.0.as_str(), key.1) {
- ("term_expansion", 2) => self.extensible_predicates.remove(key),
- _ => match compilation_target {
- CompilationTarget::User => self.extensible_predicates.remove(key),
- CompilationTarget::Module(ref module_name) => {
- if let Some(module) = self.modules.get_mut(module_name) {
- module.extensible_predicates.remove(key)
- } else {
- None
- }
+ match compilation_target {
+ CompilationTarget::User => self.extensible_predicates.remove(key),
+ CompilationTarget::Module(ref module_name) => {
+ if let Some(module) = self.modules.get_mut(module_name) {
+ module.extensible_predicates.remove(key)
+ } else {
+ None
}
- },
+ }
}
}