Ok(code_index)
}
- fn record_incremental_compile(
- &mut self,
- key: PredicateKey,
- compilation_target: CompilationTarget,
- append_or_prepend: AppendOrPrepend,
- ) {
- self.retraction_info
- .push_record(match compilation_target {
- CompilationTarget::User => match append_or_prepend {
- AppendOrPrepend::Append => {
- RetractionRecord::AppendedUserExtensiblePredicate(key)
- }
- AppendOrPrepend::Prepend => {
- RetractionRecord::PrependedUserExtensiblePredicate(key)
- }
- },
- CompilationTarget::Module(module_name) => match append_or_prepend {
- AppendOrPrepend::Append => RetractionRecord::AppendedModuleExtensiblePredicate(
- module_name,
- key,
- ),
- AppendOrPrepend::Prepend => {
- RetractionRecord::PrependedModuleExtensiblePredicate(
- module_name,
- key,
- )
- }
- },
- });
- }
-
fn extend_local_predicate_skeleton(
&mut self,
compilation_target: &CompilationTarget,
non_counted_bt: bool,
append_or_prepend: AppendOrPrepend,
) -> Result<CodeIndex, SessionError> {
- self.record_incremental_compile(
- key.clone(),
- compilation_target.clone(),
- append_or_prepend,
- );
-
let settings = match self
.wam
.indices
ReplacedMetaPredicate(ClauseName, ClauseName, Vec<MetaSpec>),
AddedModule(ClauseName),
ReplacedModule(ModuleDecl, ListingSource, LocalExtensiblePredicates),
- AppendedModuleExtensiblePredicate(ClauseName, PredicateKey),
- PrependedModuleExtensiblePredicate(ClauseName, PredicateKey),
AddedModuleOp(ClauseName, OpDecl),
ReplacedModuleOp(ClauseName, OpDecl, usize, Specifier),
AddedModulePredicate(ClauseName, PredicateKey),
AddedUserOp(OpDecl),
ReplacedUserOp(OpDecl, usize, Specifier),
AddedExtensiblePredicate(CompilationTarget, PredicateKey),
- AppendedUserExtensiblePredicate(PredicateKey),
- PrependedUserExtensiblePredicate(PredicateKey),
AddedUserPredicate(PredicateKey),
ReplacedUserPredicate(PredicateKey, IndexPtr),
AddedIndex(OptArgIndexKey, usize), //, Vec<usize>),
}
}
}
- RetractionRecord::AppendedModuleExtensiblePredicate(module_name, key) => {
- self.wam
- .indices
- .get_predicate_skeleton_mut(&CompilationTarget::Module(module_name), &key)
- .map(|skeleton| {
- skeleton.clauses.pop_back();
- });
- }
- RetractionRecord::PrependedModuleExtensiblePredicate(module_name, key) => {
- self.wam
- .indices
- .get_predicate_skeleton_mut(&CompilationTarget::Module(module_name), &key)
- .map(|skeleton| {
- skeleton.clauses.pop_front();
- });
- }
RetractionRecord::AddedModuleOp(module_name, mut op_decl) => {
match self.wam.indices.modules.get_mut(&module_name) {
Some(ref mut module) => {
.indices
.remove_predicate_skeleton(&compilation_target, &key);
}
- RetractionRecord::AppendedUserExtensiblePredicate(key) => {
- self.wam
- .indices
- .get_predicate_skeleton_mut(&CompilationTarget::User, &key)
- .map(|skeleton| {
- skeleton.clauses.pop_back();
- });
- }
- RetractionRecord::PrependedUserExtensiblePredicate(key) => {
- self.wam
- .indices
- .get_predicate_skeleton_mut(&CompilationTarget::User, &key)
- .map(|skeleton| {
- skeleton.clauses.pop_front();
- });
- }
RetractionRecord::AddedUserOp(mut op_decl) => {
op_decl.remove(&mut self.wam.indices.op_dir);
}