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 c097ff8b..aa88e828 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 @@ -299,9 +299,10 @@ internal open class MatchJournalImpl( if (posPtr.hasNext()) posPtr.next() } - private fun resetOccurrences(occSpecs: Iterable) = - // todo: need iterating over reversed list? - occSpecs.forEach { + private fun resetOccurrences(occSpecs: List) = + // assume occSpecs are ordered in order of processing + // so, iterate over reversed list + occSpecs.asReversed().forEach { if (it.discarded) { it.occ.alive = true it.occ.stored = true @@ -311,7 +312,7 @@ internal open class MatchJournalImpl( } } - private fun replayOccurrences(occSpecs: Iterable) = + private fun replayOccurrences(occSpecs: List) = occSpecs.forEach { if (it.discarded) { // it.occ.terminate(observable)