public class ErrorLog {
ArrayList<CompilationError> errors = new ArrayList<CompilationError>();
- long exceptionPosition;
+ long exceptionPosition = Locations.NO_LOCATION;
public void log(String message) {
errors.add(new CompilationError(message));
}
public void log(Exception e) {
+ long location = Locations.NO_LOCATION;
if(e instanceof InternalCompilerError)
- log(((InternalCompilerError)e).location, e);
- else
- log(new CompilationError(e));
+ location = ((InternalCompilerError)e).location;
+ if(location == Locations.NO_LOCATION)
+ location = exceptionPosition;
+ log(new CompilationError(location, e));
}
public void log(long location, Exception e) {
if(this.exceptionPosition == Locations.NO_LOCATION)
this.exceptionPosition = exceptionPosition;
}
-
- public long getExceptionPosition() {
- return exceptionPosition;
- }
public String getErrorsAsString() {
StringBuilder b = new StringBuilder();