X-Git-Url: https://gerrit.simantics.org/r/gitweb?a=blobdiff_plain;f=bundles%2Forg.simantics.scl.compiler%2Fsrc%2Forg%2Fsimantics%2Fscl%2Fcompiler%2Felaboration%2Fexpressions%2FEAsPattern.java;h=21248179f9a7711732edf31c359c41d799f1b8fb;hb=138667b7aae3a7984a8d0bb2a39461ce342b08e7;hp=0c1f895481bb6f8931356f44d70cd293f982cba9;hpb=0ae2b770234dfc3cbb18bd38f324125cf0faca07;p=simantics%2Fplatform.git diff --git a/bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/elaboration/expressions/EAsPattern.java b/bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/elaboration/expressions/EAsPattern.java index 0c1f89548..21248179f 100644 --- a/bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/elaboration/expressions/EAsPattern.java +++ b/bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/elaboration/expressions/EAsPattern.java @@ -1,27 +1,22 @@ 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.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; -import org.simantics.scl.compiler.internal.elaboration.utils.ExpressionDecorator; import org.simantics.scl.compiler.types.Type; import org.simantics.scl.compiler.types.exceptions.MatchException; -import gnu.trove.map.hash.TObjectIntHashMap; -import gnu.trove.set.hash.THashSet; -import gnu.trove.set.hash.TIntHashSet; - public class EAsPattern extends Expression { - Variable var; - EVar eVar; - Expression pattern; + public Variable var; + public EVar eVar; + public Expression pattern; public EAsPattern(EVar eVar, Expression pattern) { this.eVar = eVar; @@ -40,32 +35,6 @@ public class EAsPattern extends Expression { public Expression getPattern() { return pattern; } - - @Override - public void collectRefs(TObjectIntHashMap allRefs, - TIntHashSet refs) { - pattern.collectRefs(allRefs, refs); - } - - @Override - public void collectVars(TObjectIntHashMap allVars, - TIntHashSet vars) { - int id = allVars.get(var); - if(id >= 0) - vars.add(id); - pattern.collectVars(allVars, vars); - } - - @Override - public void collectFreeVariables(THashSet vars) { - throw new InternalCompilerError(location, "Cannot collect free variables for a pattern."); - } - - @Override - public void removeFreeVariables(THashSet vars) { - vars.remove(var); - pattern.removeFreeVariables(vars); - } @Override public Expression simplify(SimplificationContext context) { @@ -92,7 +61,7 @@ public class EAsPattern extends Expression { } @Override - public IVal toVal(Environment env, CodeWriter w) { + public IVal toVal(CompilationContext context, CodeWriter w) { throw new InternalCompilerError("EAsPattern allowed only in patterns."); } @@ -109,12 +78,6 @@ public class EAsPattern extends Expression { var.setType(pattern.getType()); return this; } - - @Override - public Expression decorate(ExpressionDecorator decorator) { - pattern = pattern.decorate(decorator); - return decorator.decorate(this); - } @Override public Expression replace(ReplaceContext context) { @@ -130,11 +93,6 @@ public class EAsPattern extends Expression { return result; } - - @Override - public void collectEffects(THashSet effects) { - pattern.collectEffects(effects); - } @Override public void setLocationDeep(long loc) { @@ -150,12 +108,6 @@ public class EAsPattern extends Expression { public void accept(ExpressionVisitor visitor) { visitor.visit(this); } - - @Override - public void forVariables(VariableProcedure procedure) { - procedure.execute(eVar.location, var); - pattern.forVariables(procedure); - } @Override public Expression accept(ExpressionTransformer transformer) {