]> gerrit.simantics Code Review - simantics/platform.git/blobdiff - bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/common/exceptions/InternalCompilerError.java
Merge "Tons of dependency fixes and updates"
[simantics/platform.git] / bundles / org.simantics.scl.compiler / src / org / simantics / scl / compiler / common / exceptions / InternalCompilerError.java
index 71b6193015b1b4aafb8d9e0cc226131a0f7f928b..a3b64613428c465168cb210211ef19010e8570cf 100644 (file)
@@ -22,6 +22,11 @@ public class InternalCompilerError extends RuntimeException {
         this.location = Locations.NO_LOCATION;
     }
     
+    public InternalCompilerError(String message, Throwable cause) {
+        super(message, cause);
+        this.location = Locations.NO_LOCATION;
+    }
+    
     public InternalCompilerError(long location, String message) {
         super(message);
         this.location = location;
@@ -36,5 +41,16 @@ public class InternalCompilerError extends RuntimeException {
         super(cause);
         this.location = location;
     }
+    
+    public static InternalCompilerError injectLocation(long location, Throwable cause) {
+        if(cause instanceof InternalCompilerError) {
+            InternalCompilerError e = (InternalCompilerError)cause;
+            if(e.location == Locations.NO_LOCATION)
+                e.location = location;
+            return e;
+        }
+        else
+            return new InternalCompilerError(location, cause);
+    }
    
 }