diff --git a/reactor/Core/src/jetbrains/mps/logic/reactor/core/internal/ControllerImpl.kt b/reactor/Core/src/jetbrains/mps/logic/reactor/core/internal/ControllerImpl.kt index ca394ccb..739fcfbe 100644 --- a/reactor/Core/src/jetbrains/mps/logic/reactor/core/internal/ControllerImpl.kt +++ b/reactor/Core/src/jetbrains/mps/logic/reactor/core/internal/ControllerImpl.kt @@ -175,7 +175,7 @@ internal class ControllerImpl ( if (status.feedback?.alreadyHandled() == false) { status.feedback.handle(match, newParent.match.feedbackKey, - processing.principalRuleTags(newParent), + processing.basisRuleTags(newParent), supervisor) } } @@ -199,7 +199,7 @@ internal class ControllerImpl ( } else if (status.feedback?.alreadyHandled() == false && status.failure.handle(match, newParent.match.feedbackKey, - processing.principalRuleTags(newParent), + processing.basisRuleTags(newParent), supervisor)) { status.recover() diff --git a/reactor/Core/src/jetbrains/mps/logic/reactor/core/internal/MatchJournal.kt b/reactor/Core/src/jetbrains/mps/logic/reactor/core/internal/MatchJournal.kt index 471290c4..a4a56223 100644 --- a/reactor/Core/src/jetbrains/mps/logic/reactor/core/internal/MatchJournal.kt +++ b/reactor/Core/src/jetbrains/mps/logic/reactor/core/internal/MatchJournal.kt @@ -121,7 +121,7 @@ interface MatchJournal : EvidenceSource { */ fun index(): Index - fun principalRuleTags(chunk: Chunk): List + fun basisRuleTags(chunk: Chunk): List /** * Simplifies some search operations on [MatchJournal]. diff --git a/reactor/Core/src/jetbrains/mps/logic/reactor/core/internal/MatchJournalImpl.kt b/reactor/Core/src/jetbrains/mps/logic/reactor/core/internal/MatchJournalImpl.kt index a1f83ba5..8b35e9f4 100644 --- a/reactor/Core/src/jetbrains/mps/logic/reactor/core/internal/MatchJournalImpl.kt +++ b/reactor/Core/src/jetbrains/mps/logic/reactor/core/internal/MatchJournalImpl.kt @@ -243,12 +243,12 @@ internal open class MatchJournalImpl( override fun index(): MatchJournal.Index = IndexImpl(hist) - override fun principalRuleTags(chunk: Chunk): List { + override fun basisRuleTags(chunk: Chunk): List { val ptags = mutableListOf() chunk.justifications().forEach { jn -> // hist is sequential, random access can be expensive (lookupChunkByEvidence(jn) as? MatchChunk)?.let { - if (it.match.isPrincipal) { + if (it.match.rule().isBasis) { ptags.add(it.ruleUniqueTag) } } diff --git a/reactor/Core/src/jetbrains/mps/logic/reactor/program/Rule.java b/reactor/Core/src/jetbrains/mps/logic/reactor/program/Rule.java index 3601fb87..01828281 100644 --- a/reactor/Core/src/jetbrains/mps/logic/reactor/program/Rule.java +++ b/reactor/Core/src/jetbrains/mps/logic/reactor/program/Rule.java @@ -40,6 +40,8 @@ public abstract class Rule { return Collections.emptyList(); } + public boolean isBasis() { return false; } + /** * A tag uniquely identifies the rule. */