Skip to content

Commit e5b99f2

Browse files
authored
Print stacktrace for interpreter compile errors (#1132)
1 parent d499306 commit e5b99f2

File tree

3 files changed

+9
-8
lines changed

3 files changed

+9
-8
lines changed

de.peeeq.wurstscript/src/main/java/de/peeeq/wurstio/jassinterpreter/InterpreterException.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,9 @@ public InterpreterException(Element trace, String msg, Throwable e) {
3434
@Override
3535
public String getMessage() {
3636
String res = super.getMessage();
37-
if (trace != null) {
37+
if (stackTrace != null) {
38+
res = res + "\n" + stackTrace;
39+
} else if (trace != null) {
3840
WPos pos = trace.attrSource();
3941
res = res + "\n at " + pos.getFile() + ":" + pos.getLine();
4042
}

de.peeeq.wurstscript/src/main/java/de/peeeq/wurstscript/intermediatelang/interpreter/ILInterpreter.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -228,7 +228,7 @@ public static String buildStacktrace(ProgramState globalState, Throwable e) {
228228
StringBuilder err = new StringBuilder();
229229
try {
230230
WPos src = globalState.getLastStatement().attrTrace().attrSource();
231-
err.append("at : ").append(new File(src.getFile()).getName()).append(", line ").append(src.getLine()).append("\n");
231+
err.append("Trace : ").append(new File(src.getFile()).getName()).append(":").append(src.getLine()).append("\n");
232232
} catch (Exception _e) {
233233
// ignore
234234
}

de.peeeq.wurstscript/src/main/java/de/peeeq/wurstscript/intermediatelang/interpreter/ILStackFrame.java

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -38,8 +38,12 @@ public ILStackFrame(ImCompiletimeExpr f, WPos trace) {
3838

3939
public String getMessage() {
4040
StringBuilder sb = new StringBuilder();
41+
if (trace != null && !trace.isArtificial()) {
42+
String file = new File(trace.getFile()).getName();
43+
sb.append(" ╚ ").append(file).append(":").append(trace.getLine());
44+
}
4145
if (f.isLeft()) {
42-
sb.append("... when calling ").append(f.getLeft().getName()).append("(");
46+
sb.append(" calling ").append(f.getLeft().getName()).append("(");
4347
boolean first = true;
4448
for (ILconst arg : args) {
4549
if (!first) {
@@ -53,11 +57,6 @@ public String getMessage() {
5357
sb.append("... when executing compiletime expression ");
5458
}
5559

56-
if (trace != null && !trace.isArtificial()) {
57-
String file = new File(trace.getFile()).getName();
58-
sb.append(" in ").append(file).append(":").append(trace.getLine());
59-
}
60-
6160
return sb.toString();
6261
}
6362

0 commit comments

Comments
 (0)