]> gerrit.simantics Code Review - simantics/platform.git/blobdiff - bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/elaboration/expressions/ESimpleLambda.java
(refs #7278, refs #7279) Small fixes to InternalCompilerExceptions
[simantics/platform.git] / bundles / org.simantics.scl.compiler / src / org / simantics / scl / compiler / elaboration / expressions / ESimpleLambda.java
index 29eff29103dc6a8e2c257c7857b3125c2ccd2982..2e5d4c364c743ab24345141e8752a5227e11f990 100644 (file)
@@ -3,11 +3,11 @@ package org.simantics.scl.compiler.elaboration.expressions;
 import java.util.ArrayList;
 
 import org.simantics.scl.compiler.common.exceptions.InternalCompilerError;
+import org.simantics.scl.compiler.compilation.CompilationContext;
 import org.simantics.scl.compiler.elaboration.contexts.ReplaceContext;
 import org.simantics.scl.compiler.elaboration.contexts.SimplificationContext;
 import org.simantics.scl.compiler.elaboration.contexts.TranslationContext;
 import org.simantics.scl.compiler.elaboration.contexts.TypingContext;
-import org.simantics.scl.compiler.environment.Environment;
 import org.simantics.scl.compiler.errors.Locations;
 import org.simantics.scl.compiler.internal.codegen.references.IVal;
 import org.simantics.scl.compiler.internal.codegen.writer.CodeWriter;
@@ -78,8 +78,8 @@ public class ESimpleLambda extends Expression {
        }
        
        @Override
-       public IVal toVal(Environment env, CodeWriter w) {
-           return lambdaToVal(env, w);
+       public IVal toVal(CompilationContext context, CodeWriter w) {
+           return lambdaToVal(context, w);
     }
 
     @Override
@@ -180,11 +180,10 @@ public class ESimpleLambda extends Expression {
             return this;
         }
         
-        effect = mfun.effect;
         context.pushEffectUpperBound(location, mfun.effect);
         parameter.setType(mfun.parameterTypes[0]);
         value = value.checkType(context, mfun.returnType);
-        context.popEffectUpperBound();
+        effect = context.popEffectUpperBound();
         return this;
     }