extend existing local predicate skeletons in LoadState::compile

This commit is contained in:
Mark Thom
2021-02-22 02:00:25 -07:00
parent f6498f2a7b
commit 5f8bdc564b
2 changed files with 54 additions and 7 deletions

View File

@@ -76,6 +76,7 @@ pub(crate) enum RetractionRecord {
SkeletonClausePopFront(CompilationTarget, PredicateKey),
SkeletonLocalClauseClausePopBack(CompilationTarget, CompilationTarget, PredicateKey),
SkeletonLocalClauseClausePopFront(CompilationTarget, CompilationTarget, PredicateKey),
SkeletonLocalClauseTruncateBack(CompilationTarget, CompilationTarget, PredicateKey, usize),
SkeletonClauseTruncateBack(CompilationTarget, PredicateKey, usize),
SkeletonClauseStartReplaced(CompilationTarget, PredicateKey, usize, usize),
RemovedSkeletonClause(
@@ -519,6 +520,27 @@ impl<'a> Drop for LoadState<'a> {
None => {}
}
}
RetractionRecord::SkeletonLocalClauseTruncateBack(
src_compilation_target,
local_compilation_target,
key,
len,
) => {
match self
.wam
.indices
.get_local_predicate_skeleton_mut(
&src_compilation_target,
local_compilation_target,
key,
)
{
Some(skeleton) => {
skeleton.clause_clause_locs.truncate_back(len);
}
None => {}
}
}
RetractionRecord::SkeletonClauseTruncateBack(compilation_target, key, len) => {
match self
.wam