X-Git-Url: https://gerrit.simantics.org/r/gitweb?a=blobdiff_plain;f=bundles%2Forg.simantics.scl.compiler%2Fsrc%2Forg%2Fsimantics%2Fscl%2Fcompiler%2Fcompilation%2FCodeGeneration.java;h=9c7c77470c55b57a91c7dc768d49ff3408e2c9ff;hb=f5b8a3d0b68ab33a78235c5dfa84fc1d45f6271e;hp=52abbc6d87b48542b60e26152d917d4b64eaa22a;hpb=3448b94a8e90047c88eb62a0542c1596acb701b8;p=simantics%2Fplatform.git diff --git a/bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/compilation/CodeGeneration.java b/bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/compilation/CodeGeneration.java index 52abbc6d8..9c7c77470 100644 --- a/bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/compilation/CodeGeneration.java +++ b/bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/compilation/CodeGeneration.java @@ -26,6 +26,7 @@ import org.simantics.scl.compiler.elaboration.modules.TypeClass; import org.simantics.scl.compiler.elaboration.modules.TypeClassInstance; import org.simantics.scl.compiler.elaboration.modules.TypeClassMethod; import org.simantics.scl.compiler.errors.ErrorLog; +import org.simantics.scl.compiler.errors.Locations; import org.simantics.scl.compiler.internal.codegen.references.IVal; import org.simantics.scl.compiler.internal.codegen.references.Val; import org.simantics.scl.compiler.internal.codegen.ssa.SSAModule; @@ -167,7 +168,10 @@ public class CodeGeneration { decomposed.parameters[i].setVal(parameterVals[i]); w.return_(decomposed.body.toVal(compilationContext.environment, w)); } catch(RuntimeException e) { - errorLog.setExceptionPosition(value.getExpression().location); + long location = value.getExpression().location; + if(location == Locations.NO_LOCATION) + location = value.definitionLocation; + errorLog.setExceptionPosition(location); throw e; } }