]> gerrit.simantics Code Review - simantics/platform.git/blobdiff - bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/elaboration/chr/relations/ExternalCHRRelation.java
(refs #7375) Fixed implementation of collectEffects
[simantics/platform.git] / bundles / org.simantics.scl.compiler / src / org / simantics / scl / compiler / elaboration / chr / relations / ExternalCHRRelation.java
index 1ee4726eba227c397fbdf535c606302a11543eb1..fdfa195ac53158f9e4f94606ef676e102e296b16 100644 (file)
@@ -1,29 +1,52 @@
-package org.simantics.scl.compiler.elaboration.chr.relations;\r
-\r
-import org.simantics.scl.compiler.elaboration.chr.CHRRelation;\r
-import org.simantics.scl.compiler.elaboration.relations.SCLRelation;\r
-import org.simantics.scl.compiler.types.TVar;\r
-import org.simantics.scl.compiler.types.Type;\r
-\r
-public class ExternalCHRRelation implements CHRRelation {\r
-    public final SCLRelation relation;\r
-\r
-    public ExternalCHRRelation(SCLRelation relation) {\r
-        this.relation = relation;\r
-    }\r
-\r
-    @Override\r
-    public TVar[] getTypeVariables() {\r
-        return relation.getTypeVariables();\r
-    }\r
-\r
-    @Override\r
-    public Type[] getParameterTypes() {\r
-        return relation.getParameterTypes();\r
-    }\r
-    \r
-    @Override\r
-    public String toString() {\r
-        return relation.toString();\r
-    }\r
-}\r
+package org.simantics.scl.compiler.elaboration.chr.relations;
+
+import org.simantics.scl.compiler.elaboration.chr.CHRRelation;
+import org.simantics.scl.compiler.elaboration.relations.SCLRelation;
+import org.simantics.scl.compiler.types.TPred;
+import org.simantics.scl.compiler.types.TVar;
+import org.simantics.scl.compiler.types.Type;
+
+import gnu.trove.set.hash.THashSet;
+
+public class ExternalCHRRelation implements CHRRelation {
+    public final SCLRelation relation;
+
+    public ExternalCHRRelation(SCLRelation relation) {
+        this.relation = relation;
+    }
+
+    @Override
+    public TVar[] getTypeVariables() {
+        return relation.getTypeVariables();
+    }
+
+    @Override
+    public Type[] getParameterTypes() {
+        return relation.getParameterTypes();
+    }
+
+    @Override
+    public TPred[] getTypeConstraints() {
+        return relation.getTypeConstraints();
+    }
+    
+    @Override
+    public String toString() {
+        return relation.toString();
+    }
+    
+    @Override
+    public String[] getFieldNames() {
+        return relation.getFieldNames();
+    }
+
+    @Override
+    public void collectEnforceEffects(THashSet<Type> effects) {
+        effects.add(relation.getEnforceEffect());
+    }
+
+    @Override
+    public void collectQueryEffects(THashSet<Type> effects) {
+        effects.add(relation.getQueryEffect());
+    }
+}