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 f5d23f81..1b7e6abc 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 @@ -301,8 +301,12 @@ internal class ControllerImpl ( try { this.status = block.invoke(status) - } catch (ex: EvaluationFailureException) { - this.status = status.fail(EvaluationFailure(ex)) + } catch (ex: RuntimeException) { + val failure = if (ex is EvaluationFailureException) + EvaluationFailure(ex) + else + EvaluationFailure(EvaluationFailureException(ex)) + this.status = status.fail(failure) } } return status.operational @@ -313,11 +317,14 @@ internal class ControllerImpl ( try { block() - } catch (ex: EvaluationFailureException) { - val failure = EvaluationFailure(ex) + } catch (ex: RuntimeException) { + val failure = if (ex is EvaluationFailureException) + EvaluationFailure(ex) + else + EvaluationFailure(EvaluationFailureException(ex)) if (checking) { this.status = status.abort(failure) - + } else { trace.feedback(failure) this.status = status.fail(failure) diff --git a/reactor/Test/test/TestIncrementalProgram.kt b/reactor/Test/test/TestIncrementalProgram.kt index d5c0a5b8..9fac4c9a 100644 --- a/reactor/Test/test/TestIncrementalProgram.kt +++ b/reactor/Test/test/TestIncrementalProgram.kt @@ -3,10 +3,7 @@ import jetbrains.mps.logic.reactor.core.Occurrence import jetbrains.mps.logic.reactor.core.ReactorLifecycle import jetbrains.mps.logic.reactor.core.RulesDiff import jetbrains.mps.logic.reactor.core.internal.MatchJournal -import jetbrains.mps.logic.reactor.evaluation.SessionToken -import jetbrains.mps.logic.reactor.evaluation.EvaluationResult -import jetbrains.mps.logic.reactor.evaluation.EvaluationSession -import jetbrains.mps.logic.reactor.evaluation.PredicateInvocation +import jetbrains.mps.logic.reactor.evaluation.* import jetbrains.mps.logic.reactor.program.Constraint import jetbrains.mps.logic.reactor.program.ConstraintSymbol import jetbrains.mps.logic.reactor.program.IncrementalContractViolationException @@ -1544,7 +1541,7 @@ class TestIncrementalProgram { } } - @Test(expected = IncrementalContractViolationException::class) + @Test(expected = EvaluationFailureException::class) fun violatePrincipalLogicalContract() { val progSpec = MockIncrProgSpec( setOf("main", "produceBound"),