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%2Fcompilation%2FEnvironmentOfModule.java;h=fd70d368d96cb7e6fbedf004c41c58d04dbf1534;hp=0b4d03a046775d772b17b7955876cf8a5fb6a625;hb=fad36d463b75c3a9944d875fc627c3533f6da74d;hpb=cb5fc8d606d8b322563e9345c441eecfa7f01753 diff --git a/bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/compilation/EnvironmentOfModule.java b/bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/compilation/EnvironmentOfModule.java index 0b4d03a04..fd70d368d 100644 --- a/bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/compilation/EnvironmentOfModule.java +++ b/bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/compilation/EnvironmentOfModule.java @@ -2,8 +2,10 @@ package org.simantics.scl.compiler.compilation; import java.util.ArrayList; import java.util.Collection; +import java.util.List; import org.simantics.scl.compiler.common.names.Name; +import org.simantics.scl.compiler.constants.Constant; import org.simantics.scl.compiler.elaboration.modules.SCLValue; import org.simantics.scl.compiler.elaboration.modules.TypeClass; import org.simantics.scl.compiler.elaboration.modules.TypeClassInstance; @@ -40,6 +42,21 @@ public class EnvironmentOfModule implements Environment { else return base.getValue(name); } + + @Override + public List getFieldAccessors(String name) { + List r1 = base.getFieldAccessors(name); + List r2 = module.getFieldAccessors(name); + if(r1 == null) + return r2; + if(r2 == null) + return r1; + ArrayList result = new ArrayList(r1.size() + r2.size()); + result.addAll(r1); + result.addAll(r2); + return result; + } + @Override public SCLRelation getRelation(Name name) { if(name.module.equals(module.getName()))