Skip to content

Commit 546549f

Browse files
authored
Unify line positions (#1121)
1 parent 4a371a7 commit 546549f

6 files changed

Lines changed: 10 additions & 7 deletions

File tree

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ public String getMessage() {
3636
String res = super.getMessage();
3737
if (trace != null) {
3838
WPos pos = trace.attrSource();
39-
res = res + "\n at " + pos.getFile() + " line " + pos.getLine();
39+
res = res + "\n at " + pos.getFile() + ":" + pos.getLine();
4040
}
4141
return res;
4242
}

de.peeeq.wurstscript/src/main/java/de/peeeq/wurstscript/attributes/CompileError.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -68,7 +68,7 @@ public String getMessage() {
6868
@Override
6969
public String toString() {
7070
File file = new File(source.getFile());
71-
return errorType + " in File " + file.getName() + " line " + source.getLine() + ":\n " +
71+
return errorType + " in File " + file.getName() + ":" + source.getLine() + ":\n " +
7272
message;
7373
}
7474

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

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,9 @@
88
import de.peeeq.wurstscript.ast.WPackage;
99
import de.peeeq.wurstscript.intermediatelang.*;
1010
import de.peeeq.wurstscript.jassIm.*;
11+
import de.peeeq.wurstscript.translation.imtranslation.ImPrinter;
1112
import de.peeeq.wurstscript.types.TypesHelper;
13+
import de.peeeq.wurstscript.utils.Utils;
1214
import org.eclipse.jdt.annotation.Nullable;
1315

1416
import java.util.ArrayList;
@@ -256,7 +258,7 @@ public static ILconst eval(ImVarArrayAccess e, ProgramState globalState, LocalSt
256258
public static ILconst eval(ImMemberAccess ma, ProgramState globalState, LocalState localState) {
257259
ILconstObject receiver = globalState.toObject(ma.getReceiver().evaluate(globalState, localState));
258260
if (receiver == null) {
259-
throw new InterpreterException(ma.getTrace(), "Null pointer dereference");
261+
throw new InterpreterException(ma.getTrace(), "Null pointer dereference: " + ImPrinter.asString(ma.getReceiver()));
260262
}
261263
List<Integer> indexes = new ArrayList<>();
262264
for (ImExpr i : ma.getIndexes()) {
@@ -411,7 +413,7 @@ public static ILaddress evaluateLvalue(ImMemberAccess va, ProgramState globalSta
411413
}
412414
}
413415
if (receiver == null) {
414-
throw new InterpreterException(va.attrTrace(), "Null pointer dereference");
416+
throw new InterpreterException(va.attrTrace(), "Null pointer dereference: " + ImPrinter.asString(va.getReceiver()));
415417
}
416418
ILconstObject receiverFinal = receiver;
417419
List<Integer> indexes =

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

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010
import de.peeeq.wurstscript.intermediatelang.*;
1111
import de.peeeq.wurstscript.jassIm.*;
1212
import de.peeeq.wurstscript.parser.WPos;
13+
import de.peeeq.wurstscript.translation.imtranslation.ImPrinter;
1314
import de.peeeq.wurstscript.utils.LineOffsets;
1415
import de.peeeq.wurstscript.utils.Utils;
1516
import it.unimi.dsi.fastutil.ints.Int2ObjectOpenHashMap;
@@ -106,7 +107,7 @@ public void deallocate(ILconstObject obj, ImClass clazz, Element trace) {
106107

107108
public void assertAllocated(ILconstObject obj, Element trace) {
108109
if (obj == null) {
109-
throw new InterpreterException(trace, "Null pointer dereference");
110+
throw new InterpreterException(trace, "Null pointer dereference. The interpreter expected an object here, but found null.");
110111
}
111112
if (obj.isDestroyed()) {
112113
throw new InterpreterException(trace, "Object already destroyed");

de.peeeq.wurstscript/src/main/java/de/peeeq/wurstscript/parser/WPos.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -75,7 +75,7 @@ public String toString() {
7575
}
7676

7777
public String print() {
78-
return "[" + file + " line " + getLine() + "]";
78+
return "[" + file + ":" + getLine() + "]";
7979
}
8080

8181
private static final Pattern p = Pattern.compile("^.*[/\\\\]([^/\\\\]+)\\.[^.]*$");

de.peeeq.wurstscript/src/main/java/de/peeeq/wurstscript/types/VariableBinding.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -84,7 +84,7 @@ public String toString() {
8484
if (!first) {
8585
s.append(", ");
8686
}
87-
s.append(t.getName()).append(" line ").append(t.getSource().getLine());
87+
s.append(t.getName()).append(":").append(t.getSource().getLine());
8888
first = false;
8989
}
9090
s.append(">");

0 commit comments

Comments
 (0)