]> 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 626bd48cb75e50d3a8585e30e05559dd1d8d76ff..dfa618ad485387443226f43000823c1ee8d565f6 100644 (file)
@@ -4,16 +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.elaboration.expressions.VariableProcedure;
 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;
 
@@ -23,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
@@ -52,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) {
@@ -73,11 +44,6 @@ public class ListGuard extends ListQualifier {
         visitor.visit(this);
     }
     
-    @Override
-    public void forVariables(VariableProcedure procedure) {
-        condition.forVariables(procedure);
-    }
-    
     @Override
     public ListQualifier accept(ListQualifierTransformer transformer) {
         return transformer.transform(this);