X-Git-Url: https://gerrit.simantics.org/r/gitweb?a=blobdiff_plain;ds=sidebyside;f=bundles%2Forg.simantics.scl.compiler%2Fsrc%2Forg%2Fsimantics%2Fscl%2Fcompiler%2Felaboration%2Fexpressions%2FEBind.java;h=3bec2aaa13ecafde91be4380559df456779b6953;hb=a9f88c57e622d9ecf2732bd0278e0989dc0dfd5a;hp=a6364789c3df2d82ed6efa5409da5862a59330de;hpb=0ae2b770234dfc3cbb18bd38f324125cf0faca07;p=simantics%2Fplatform.git diff --git a/bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/elaboration/expressions/EBind.java b/bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/elaboration/expressions/EBind.java index a6364789c..3bec2aaa1 100644 --- a/bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/elaboration/expressions/EBind.java +++ b/bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/elaboration/expressions/EBind.java @@ -1,15 +1,14 @@ package org.simantics.scl.compiler.elaboration.expressions; import org.simantics.scl.compiler.common.exceptions.InternalCompilerError; +import org.simantics.scl.compiler.compilation.CompilationContext; 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.elaboration.modules.SCLValue; -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; -import org.simantics.scl.compiler.internal.elaboration.utils.ExpressionDecorator; import org.simantics.scl.compiler.types.Type; import org.simantics.scl.compiler.types.Types; import org.simantics.scl.compiler.types.exceptions.MatchException; @@ -24,7 +23,7 @@ public class EBind extends SimplifiableExpression { public Expression pattern; public Expression value; public Expression in; - private EVariable monadEvidence; + EVariable monadEvidence; SCLValue bindFunction; Type monadType; Type valueContentType; @@ -44,12 +43,6 @@ public class EBind extends SimplifiableExpression { this.value = value; this.in = in; } - - @Override - public void collectRefs(final TObjectIntHashMap allRefs, final TIntHashSet refs) { - value.collectRefs(allRefs, refs); - in.collectRefs(allRefs, refs); - } @Override public void collectVars(TObjectIntHashMap allVars, @@ -91,7 +84,7 @@ public class EBind extends SimplifiableExpression { } @Override - public IVal toVal(Environment env, CodeWriter w) { + public IVal toVal(CompilationContext context, CodeWriter w) { throw new InternalCompilerError("EBind should be eliminated."); } @@ -138,14 +131,6 @@ public class EBind extends SimplifiableExpression { return this; } - @Override - public Expression decorate(ExpressionDecorator decorator) { - pattern = pattern.decorate(decorator); - value = value.decorate(decorator); - in = in.decorate(decorator); - return decorator.decorate(this); - } - @Override public void collectEffects(THashSet effects) { pattern.collectEffects(effects); @@ -167,14 +152,6 @@ public class EBind extends SimplifiableExpression { public void accept(ExpressionVisitor visitor) { visitor.visit(this); } - - @Override - public void forVariables(VariableProcedure procedure) { - pattern.forVariables(procedure); - value.forVariables(procedure); - if(monadEvidence != null) - monadEvidence.forVariables(procedure); - } @Override public Expression accept(ExpressionTransformer transformer) {