]> gerrit.simantics Code Review - simantics/platform.git/blobdiff - bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/compilation/EnvironmentOfModule.java
(refs #7250) Merging master, minor CHR bugfixes
[simantics/platform.git] / bundles / org.simantics.scl.compiler / src / org / simantics / scl / compiler / compilation / EnvironmentOfModule.java
index 0b4d03a046775d772b17b7955876cf8a5fb6a625..fd70d368d96cb7e6fbedf004c41c58d04dbf1534 100644 (file)
@@ -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<Constant> getFieldAccessors(String name) {
+        List<Constant> r1 = base.getFieldAccessors(name);
+        List<Constant> r2 = module.getFieldAccessors(name);
+        if(r1 == null)
+            return r2;
+        if(r2 == null)
+            return r1;
+        ArrayList<Constant> result = new ArrayList<Constant>(r1.size() + r2.size());
+        result.addAll(r1);
+        result.addAll(r2);
+        return result;
+    }
+    
     @Override
     public SCLRelation getRelation(Name name) {
         if(name.module.equals(module.getName()))