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%2Felaboration%2Fexpressions%2FEFieldAccess.java;h=c5ee9bc7a1642aa570e2ef01448709835dfebca1;hp=c05b15409bf8976d6a95c386d7a714085c7c5d01;hb=a8d72a172fdc815c8a9f0f584f010f7e35286f92;hpb=27d76db8786149c91b2e5a97d79c774e8c163eb0 diff --git a/bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/elaboration/expressions/EFieldAccess.java b/bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/elaboration/expressions/EFieldAccess.java index c05b15409..c5ee9bc7a 100644 --- a/bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/elaboration/expressions/EFieldAccess.java +++ b/bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/elaboration/expressions/EFieldAccess.java @@ -11,7 +11,6 @@ import org.simantics.scl.compiler.elaboration.expressions.EAmbiguous.Alternative import org.simantics.scl.compiler.elaboration.expressions.accessor.FieldAccessor; import org.simantics.scl.compiler.elaboration.expressions.accessor.IdAccessor; import org.simantics.scl.compiler.errors.Locations; -import org.simantics.scl.compiler.internal.elaboration.utils.ExpressionDecorator; import org.simantics.scl.compiler.internal.header.ModuleHeader; import org.simantics.scl.compiler.types.Type; import org.simantics.scl.compiler.types.Types; @@ -36,13 +35,6 @@ public class EFieldAccess extends SimplifiableExpression { ((EFieldAccess)parent).lastAccessor = false; } - @Override - public void collectRefs(TObjectIntHashMap allRefs, - TIntHashSet refs) { - parent.collectRefs(allRefs, refs); - accessor.collectRefs(allRefs, refs); - } - @Override public void collectVars(TObjectIntHashMap allVars, TIntHashSet vars) { @@ -67,7 +59,7 @@ public class EFieldAccess extends SimplifiableExpression { return null; List accessors = context.getEnvironment().getFieldAccessors(idAccessor.fieldName); if(accessors == null) { - context.getErrorLog().log("Couldn't resolve accessor ." + idAccessor.fieldName + "."); + context.getErrorLog().log(idAccessor.location, "Couldn't resolve accessor ." + idAccessor.fieldName + "."); return new EError(location); } Expression accessorExpression; @@ -86,9 +78,14 @@ public class EFieldAccess extends SimplifiableExpression { public Type getType() { return accessors.get(index).getType(); } + @Override + public String toString() { + return accessors.get(index).toString(); + } }; } accessorExpression = new EAmbiguous(alternatives); + accessorExpression.location = location; } return new EApply(location, accessorExpression, parent).checkType(context, requiredType); } @@ -161,17 +158,6 @@ public class EFieldAccess extends SimplifiableExpression { accessor.resolve(context); return this; } - - @Override - public Expression decorate(ExpressionDecorator decorator) { - return decorator.decorate(this); - } - - @Override - public void collectEffects(THashSet effects) { - // FIXME - effects.add(Types.READ_GRAPH); - } @Override public void setLocationDeep(long loc) { @@ -186,12 +172,6 @@ public class EFieldAccess extends SimplifiableExpression { public void accept(ExpressionVisitor visitor) { visitor.visit(this); } - - @Override - public void forVariables(VariableProcedure procedure) { - parent.forVariables(procedure); - accessor.forVariables(procedure); - } @Override public Expression accept(ExpressionTransformer transformer) {