]> gerrit.simantics Code Review - simantics/platform.git/blobdiff - bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/elaboration/expressions/ECHRRuleset.java
(refs #7436) Added location information to ECHRRuleset
[simantics/platform.git] / bundles / org.simantics.scl.compiler / src / org / simantics / scl / compiler / elaboration / expressions / ECHRRuleset.java
index e1495588adecf3cd8e5142da1b3be98f5f39913e..da37a4a58f228b5cd8c15af94c2fa80b709eb2bb 100644 (file)
@@ -10,11 +10,9 @@ import org.simantics.scl.compiler.internal.codegen.references.IVal;
 import org.simantics.scl.compiler.internal.codegen.writer.CodeWriter;
 import org.simantics.scl.compiler.internal.interpreted.IExpression;
 import org.simantics.scl.compiler.top.ExpressionInterpretationContext;
+import org.simantics.scl.compiler.types.Type;
 import org.simantics.scl.compiler.types.exceptions.MatchException;
 
-import gnu.trove.map.hash.TObjectIntHashMap;
-import gnu.trove.set.hash.TIntHashSet;
-
 public class ECHRRuleset extends Expression {
     public CHRRuleset ruleset;
     public Expression in;
@@ -23,12 +21,6 @@ public class ECHRRuleset extends Expression {
         this.ruleset = ruleset;
         this.in = in;
     }
-    
-    @Override
-    public void collectVars(TObjectIntHashMap<Variable> allVars, TIntHashSet vars) {
-        ruleset.collectVars(allVars, vars);
-        in.collectVars(allVars, vars);
-    }
 
     @Override
     protected void updateType() throws MatchException {
@@ -81,6 +73,13 @@ public class ECHRRuleset extends Expression {
         return this;
     }
     
+    @Override
+    public Expression checkBasicType(TypingContext context, Type requiredType) {
+        ruleset.checkType(context);
+        in = in.checkType(context, requiredType);
+        return this;
+    }
+    
     @Override
     public Expression simplify(SimplificationContext context) {
         ruleset.simplify(context);