import org.simantics.scl.compiler.elaboration.expressions.printing.ExpressionToStringVisitor;
import org.simantics.scl.compiler.errors.Locations;
import org.simantics.scl.compiler.internal.parsing.Symbol;
+import org.simantics.scl.compiler.types.Type;
import gnu.trove.map.hash.TObjectIntHashMap;
import gnu.trove.set.hash.THashSet;
else
context.add(literal, i);
}
- if(activeLiteralId == -1) {
+ if(activeLiteralId == -1 && inputFact != null) {
context.addInitFact(initConstraint, inputFact);
}
return context.createQueryPlan();
visitor.visit(this);
return b.toString();
}
+
+ public void collectQueryEffects(THashSet<Type> effects) {
+ for(CHRLiteral literal : literals)
+ literal.collectQueryEffects(effects);
+ }
+
+ public void collectEnforceEffects(THashSet<Type> effects) {
+ for(CHRLiteral literal : literals)
+ literal.collectEnforceEffects(effects);
+ }
}