X-Git-Url: https://gerrit.simantics.org/r/gitweb?p=simantics%2Fplatform.git;a=blobdiff_plain;f=bundles%2Forg.simantics.scl.compiler%2Fsrc%2Forg%2Fsimantics%2Fscl%2Fcompiler%2Finternal%2Fcodegen%2Futils%2FMethodBuilder.java;h=52d19cc5474526386485205bc1cce5be35015af9;hp=56b5c8e6767141bfae285180962016409a7ed975;hb=9fafa930ec59d0001415f5cff3579456ec38ae65;hpb=f9e11892b65f0bcc1b9e5967101888568eb1f264 diff --git a/bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/internal/codegen/utils/MethodBuilder.java b/bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/internal/codegen/utils/MethodBuilder.java index 56b5c8e67..52d19cc54 100644 --- a/bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/internal/codegen/utils/MethodBuilder.java +++ b/bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/internal/codegen/utils/MethodBuilder.java @@ -4,6 +4,7 @@ import org.cojen.classfile.TypeDesc; import org.objectweb.asm.Label; import org.objectweb.asm.MethodVisitor; import org.simantics.scl.compiler.common.exceptions.InternalCompilerError; +import org.simantics.scl.compiler.constants.LocalVariableConstant; import org.simantics.scl.compiler.internal.codegen.continuations.Cont; import org.simantics.scl.compiler.internal.codegen.continuations.ContRef; import org.simantics.scl.compiler.internal.codegen.continuations.ReturnCont; @@ -231,6 +232,9 @@ public class MethodBuilder extends MethodBuilderBase { if(!boundVar.generateOnFly) return getLocalVariable(boundVar); } + else if(val instanceof LocalVariableConstant) { + return ((LocalVariableConstant)val).var; + } push(val, type); LocalVariable temp = createLocalVariable(null, getJavaTypeTranslator().toTypeDesc(type)); storeLocal(temp);