From b7b5ece832a2265ef9809d5c2ec882734c5a275d Mon Sep 17 00:00:00 2001 From: Grigorii Kirgizov Date: Mon, 29 Jul 2019 20:25:25 +0300 Subject: [PATCH] Adjust notion of principal rule in analysis. Reenable assert in ProcessingStateImpl. Now any rule matching on or activating principal constraints counts as principal. --- ...ns.mps.lang.coderules.program.analysis.mps | 535 +++++++++++------- .../jetbrains.mps.lang.coderules.template.mps | 4 +- .../core/internal/ProcessingStateImpl.kt | 3 +- 3 files changed, 330 insertions(+), 212 deletions(-) diff --git a/coderules/languages/jetbrains.mps.lang.coderules/runtime/models/jetbrains.mps.lang.coderules.program.analysis.mps b/coderules/languages/jetbrains.mps.lang.coderules/runtime/models/jetbrains.mps.lang.coderules.program.analysis.mps index b78a4719..72802572 100644 --- a/coderules/languages/jetbrains.mps.lang.coderules/runtime/models/jetbrains.mps.lang.coderules.program.analysis.mps +++ b/coderules/languages/jetbrains.mps.lang.coderules/runtime/models/jetbrains.mps.lang.coderules.program.analysis.mps @@ -1684,218 +1684,42 @@ - - - - - - - - - - - + + + + + + - - + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + @@ -1904,6 +1728,301 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/coderules/solutions/jetbrains.mps.lang.coderules.template/models/jetbrains.mps.lang.coderules.template.mps b/coderules/solutions/jetbrains.mps.lang.coderules.template/models/jetbrains.mps.lang.coderules.template.mps index 2dfbb6ad..da4758b0 100644 --- a/coderules/solutions/jetbrains.mps.lang.coderules.template/models/jetbrains.mps.lang.coderules.template.mps +++ b/coderules/solutions/jetbrains.mps.lang.coderules.template/models/jetbrains.mps.lang.coderules.template.mps @@ -3,8 +3,8 @@ - - + + diff --git a/reactor/Core/src/jetbrains/mps/logic/reactor/core/internal/ProcessingStateImpl.kt b/reactor/Core/src/jetbrains/mps/logic/reactor/core/internal/ProcessingStateImpl.kt index 5c8e11b1..a2698e22 100644 --- a/reactor/Core/src/jetbrains/mps/logic/reactor/core/internal/ProcessingStateImpl.kt +++ b/reactor/Core/src/jetbrains/mps/logic/reactor/core/internal/ProcessingStateImpl.kt @@ -237,8 +237,7 @@ internal class ProcessingStateImpl(private var dispatchingFront: Dispatcher.Disp if (isFront() || !active.isPrincipal()) { matches } else { - // FIXME this assertion fails in certain tests, fix and re-enable -// assert( matches.all { ispec.isPrincipal(it.rule()) } ) + assert( matches.all { ispec.isPrincipal(it.rule()) } ) execQueue.postponeFutureMatches(matches) } val currentMatches = execQueue.withPostponedMatches(active, newCurrentMatches)