From dc2299368ceae2d1709dfd88f062dc6c603eaba7 Mon Sep 17 00:00:00 2001 From: Bixilon Date: Wed, 18 May 2022 15:51:21 +0200 Subject: [PATCH] cli: prefer deepest stack error --- .../de/bixilon/minosoft/commands/nodes/CommandNode.kt | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/src/main/java/de/bixilon/minosoft/commands/nodes/CommandNode.kt b/src/main/java/de/bixilon/minosoft/commands/nodes/CommandNode.kt index ac5f0a244..a1e55ec56 100644 --- a/src/main/java/de/bixilon/minosoft/commands/nodes/CommandNode.kt +++ b/src/main/java/de/bixilon/minosoft/commands/nodes/CommandNode.kt @@ -35,13 +35,19 @@ abstract class CommandNode( val pointer = reader.pointer val stackSize = stack.size var lastError: Throwable? = null + var highestStack = 0 for (child in children) { try { return executeChild(child, reader, stack) } catch (error: Throwable) { - lastError = error + val size = stack.size + if (size >= highestStack) { + highestStack = size + lastError = error + } } reader.pointer = pointer + stack.reset(stackSize) } throw lastError ?: return