]> gerrit.simantics Code Review - simantics/platform.git/blobdiff - bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/elaboration/expressions/list/ListGuard.java
(refs #7614) Assign type-checked expression back to list comprehension
[simantics/platform.git] / bundles / org.simantics.scl.compiler / src / org / simantics / scl / compiler / elaboration / expressions / list / ListGuard.java
index c9e29ca5b9d8a7b8c2a759929860e49c2472f3bb..dfa618ad485387443226f43000823c1ee8d565f6 100644 (file)
@@ -4,15 +4,9 @@ import org.simantics.scl.compiler.elaboration.contexts.SimplificationContext;
 import org.simantics.scl.compiler.elaboration.contexts.TranslationContext;
 import org.simantics.scl.compiler.elaboration.contexts.TypingContext;
 import org.simantics.scl.compiler.elaboration.expressions.Expression;
-import org.simantics.scl.compiler.elaboration.expressions.Variable;
 import org.simantics.scl.compiler.errors.Locations;
-import org.simantics.scl.compiler.types.Type;
 import org.simantics.scl.compiler.types.Types;
 
-import gnu.trove.map.hash.TObjectIntHashMap;
-import gnu.trove.set.hash.THashSet;
-import gnu.trove.set.hash.TIntHashSet;
-
 public class ListGuard extends ListQualifier {
     public Expression condition;
 
@@ -22,24 +16,7 @@ public class ListGuard extends ListQualifier {
 
     @Override
     public void checkType(TypingContext context) {
-        condition.checkType(context, Types.BOOLEAN);
-    }
-
-    @Override
-    public void collectRefs(TObjectIntHashMap<Object> allRefs,
-            TIntHashSet refs) {
-        condition.collectRefs(allRefs, refs);
-    }
-
-    @Override
-    public void collectVars(TObjectIntHashMap<Variable> allVars,
-            TIntHashSet vars) {
-        condition.collectVars(allVars, vars);
-    }
-
-    @Override
-    public void collectFreeVariables(THashSet<Variable> vars) {
-        condition.collectFreeVariables(vars);
+        condition = condition.checkType(context, Types.BOOLEAN);
     }
 
     @Override
@@ -51,14 +28,9 @@ public class ListGuard extends ListQualifier {
 
     @Override
     public void resolve(TranslationContext context) {
-        condition = condition.resolve(context);        
+        condition = condition.resolve(context);
     }
-    
-    @Override
-    public void collectEffects(THashSet<Type> effects) {
-        condition.collectEffects(effects);
-    }
-    
+
     @Override
     public void setLocationDeep(long loc) {
         if(location == Locations.NO_LOCATION) {