From 2cc7ef516f5f80e132dfd8aa41aa1cba88f3ceb7 Mon Sep 17 00:00:00 2001 From: Jaroslav Tulach Date: Sun, 18 Aug 2024 11:04:59 +0200 Subject: [PATCH] When an Error is found, return it instead of real value --- .../interpreter/instrument/ReplDebuggerInstrument.java | 3 +++ .../test/instrument/DebugServerWithScriptTest.java | 8 ++------ 2 files changed, 5 insertions(+), 6 deletions(-) diff --git a/engine/runtime-instrument-repl-debugger/src/main/java/org/enso/interpreter/instrument/ReplDebuggerInstrument.java b/engine/runtime-instrument-repl-debugger/src/main/java/org/enso/interpreter/instrument/ReplDebuggerInstrument.java index a94cfabd501d..e1029ab8373f 100644 --- a/engine/runtime-instrument-repl-debugger/src/main/java/org/enso/interpreter/instrument/ReplDebuggerInstrument.java +++ b/engine/runtime-instrument-repl-debugger/src/main/java/org/enso/interpreter/instrument/ReplDebuggerInstrument.java @@ -318,6 +318,9 @@ private void startSessionImpl() { } catch (IOException ex) { logger.log(Level.SEVERE, line, ex); } + if (InteropLibrary.getUncached().isException(b.getValue())) { + nodeState = new ReplExecutionEventNodeState(b.getValue(), nodeState.getLastScope()); + } } } exit(); diff --git a/engine/runtime-integration-tests/src/test/java/org/enso/interpreter/test/instrument/DebugServerWithScriptTest.java b/engine/runtime-integration-tests/src/test/java/org/enso/interpreter/test/instrument/DebugServerWithScriptTest.java index 5b6f9c3f8cf7..1168718ed4a3 100644 --- a/engine/runtime-integration-tests/src/test/java/org/enso/interpreter/test/instrument/DebugServerWithScriptTest.java +++ b/engine/runtime-integration-tests/src/test/java/org/enso/interpreter/test/instrument/DebugServerWithScriptTest.java @@ -4,7 +4,6 @@ import static org.hamcrest.Matchers.containsString; import static org.hamcrest.Matchers.not; import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertTrue; import java.io.ByteArrayOutputStream; @@ -87,11 +86,8 @@ public void panicOnError() throws Exception { v """; var r = ContextUtils.evalModule(ctx, code, "ScriptTest.enso", "inspect"); - assertTrue("Got array back: " + r, r.hasArrayElements()); - assertEquals("Got three elements", 3, r.getArraySize()); - assertFalse("No error at 0th" + r, r.getArrayElement(0).isException()); - assertTrue("Error 2 at 1st" + r, r.getArrayElement(1).isException()); - assertTrue("Error 2 at 2nd " + r, r.getArrayElement(2).isException()); + assertTrue("Got error back: " + r, r.isException()); + assertEquals("(Error: 2)", r.toString()); assertEquals("No output printed", "", out.toString()); assertThat( "Stderr contains some errors",