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%2FEVar.java;h=2e4809a0c871160885200f84634db12beb47f769;hb=refs%2Fchanges%2F37%2F2737%2F5;hp=f1c3e31e0a3c0678abe2bb60a778b852c1150ac2;hpb=1b4d8b692f40d946deb5db8280eb4ca5b36a75a7;p=simantics%2Fplatform.git diff --git a/bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/elaboration/expressions/EVar.java b/bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/elaboration/expressions/EVar.java old mode 100755 new mode 100644 index f1c3e31e0..2e4809a0c --- a/bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/elaboration/expressions/EVar.java +++ b/bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/elaboration/expressions/EVar.java @@ -8,10 +8,16 @@ import org.simantics.scl.compiler.elaboration.expressions.lhstype.FunctionDefini import org.simantics.scl.compiler.elaboration.expressions.lhstype.LhsType; import org.simantics.scl.compiler.elaboration.expressions.lhstype.PatternMatchingLhs; import org.simantics.scl.compiler.errors.Locations; +import org.simantics.scl.compiler.internal.parsing.Token; public class EVar extends ASTExpression { public final String name; + public EVar(Token token) { + this.location = token.location; + this.name = token.text; + } + public EVar(long location, String name) { this.location = location; this.name = name; @@ -43,7 +49,10 @@ public class EVar extends ASTExpression { @Override public Expression resolve(TranslationContext context) { - return context.resolveExpression(location, name); + Expression resolved = context.resolveVariable(location, name); + if(context.isExpandedFromWildcard(this)) + context.addExpandedFromWildcard(resolved); + return resolved; } @Override @@ -53,7 +62,10 @@ public class EVar extends ASTExpression { @Override public Expression resolveAsPattern(TranslationContext context) { - return context.resolvePattern(this); + Expression resolved = context.resolvePattern(this); + if(context.isExpandedFromWildcard(this)) + context.addExpandedFromWildcard(resolved); + return resolved; } @Override @@ -79,4 +91,9 @@ public class EVar extends ASTExpression { public Expression accept(ExpressionTransformer transformer) { return transformer.transform(this); } + + @Override + public void accept(ExpressionVisitor visitor) { + visitor.visit(this); + } }