diff --git a/reactor/Core/src/jetbrains/mps/logic/reactor/core/internal/ConstraintsProcessing.kt b/reactor/Core/src/jetbrains/mps/logic/reactor/core/internal/ConstraintsProcessing.kt index 32bd41bc..8eeb4695 100644 --- a/reactor/Core/src/jetbrains/mps/logic/reactor/core/internal/ConstraintsProcessing.kt +++ b/reactor/Core/src/jetbrains/mps/logic/reactor/core/internal/ConstraintsProcessing.kt @@ -81,7 +81,7 @@ internal class ConstraintsProcessing(private var dispatchingFront: Dispatcher.Di val justificationRoots = mutableListOf() val it = this.iterator() - var prevChunk = it.next() // skip initial chunk + var lastValidChunk = it.next() // skip initial chunk while (it.hasNext()) { val chunk = it.next() @@ -118,11 +118,11 @@ internal class ConstraintsProcessing(private var dispatchingFront: Dispatcher.Di // all occurrences from the head are principal. assert(chunk.match.allHeads().all { it.isPrincipal }) - execQueue.offerAll(prevChunk.toPos(), validOccs.asIterable()) + execQueue.offerAll(lastValidChunk.toPos(), validOccs.asIterable()) } + } else { + lastValidChunk = chunk } - - prevChunk = chunk } } diff --git a/reactor/Core/src/jetbrains/mps/logic/reactor/core/internal/ExecutionQueue.kt b/reactor/Core/src/jetbrains/mps/logic/reactor/core/internal/ExecutionQueue.kt index 2b10cf3c..a0160447 100644 --- a/reactor/Core/src/jetbrains/mps/logic/reactor/core/internal/ExecutionQueue.kt +++ b/reactor/Core/src/jetbrains/mps/logic/reactor/core/internal/ExecutionQueue.kt @@ -128,9 +128,7 @@ internal class ExecutionQueue( fun offerAll(continueFromPos: MatchJournal.Pos, occs: Iterable) = occs.forEach { journalIndex.activatingChunkOf(it)?.let { occChunk -> - // todo: ensure which is better -// offer(continueFromPos, occChunk) - offer(occChunk.toPos(), occChunk) + offer(continueFromPos, occChunk) } }