]> gerrit.simantics Code Review - simantics/platform.git/blobdiff - bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/elaboration/relations/TransitiveClosureRelation.java
(refs #7375) Fixed implementation of collectEffects
[simantics/platform.git] / bundles / org.simantics.scl.compiler / src / org / simantics / scl / compiler / elaboration / relations / TransitiveClosureRelation.java
index fb59470b37151cf6d2ee8031b05fed638190f65d..03e3a7f27667e1fe915f28888e86ea62f531ff0b 100644 (file)
@@ -8,15 +8,12 @@ import static org.simantics.scl.compiler.elaboration.expressions.Expressions.let
 import static org.simantics.scl.compiler.elaboration.expressions.Expressions.tuple;
 import static org.simantics.scl.compiler.elaboration.expressions.Expressions.var;
 
-import org.simantics.scl.compiler.common.names.Name;
-import org.simantics.scl.compiler.elaboration.contexts.SimplificationContext;
+import org.simantics.scl.compiler.common.names.Names;
 import org.simantics.scl.compiler.elaboration.expressions.EApply;
 import org.simantics.scl.compiler.elaboration.expressions.EVariable;
 import org.simantics.scl.compiler.elaboration.expressions.Expression;
 import org.simantics.scl.compiler.elaboration.expressions.Variable;
 import org.simantics.scl.compiler.elaboration.query.compilation.QueryCompilationContext;
-import org.simantics.scl.compiler.errors.Locations;
-import org.simantics.scl.compiler.types.TPred;
 import org.simantics.scl.compiler.types.TVar;
 import org.simantics.scl.compiler.types.Type;
 import org.simantics.scl.compiler.types.Types;
@@ -98,14 +95,14 @@ public class TransitiveClosureRelation extends AbstractRelation implements Compo
                 innerParameters, boundVariables);
         
         continuation = context.disjunction(continuation, newContext.getContinuation());
-        continuation = if_(apply(context, Types.PROC, Name.create("MSet", "add"), type,
+        continuation = if_(apply(context.getCompilationContext(), Types.PROC, Names.MSet_add, type,
                 var(set), var(solved)),
                 continuation,
                 context.failure());
         continuation = lambda(Types.PROC, solved, continuation);
         continuation = letRec(f, continuation, apply(var(f), var(bound)));
         continuation = let(set, 
-                apply(context, Types.PROC, Name.create("MSet", "create"), type, tuple()), 
+                apply(context.getCompilationContext(), Types.PROC, Names.MSet_create, type, tuple()), 
                 continuation);
         context.setContinuation(continuation);
         
@@ -142,4 +139,14 @@ public class TransitiveClosureRelation extends AbstractRelation implements Compo
         return new SCLRelation[] { baseRelation };
     }
 
+    @Override
+    public Type getEnforceEffect() {
+        return baseRelation.getEnforceEffect();
+    }
+
+    @Override
+    public Type getQueryEffect() {
+        return baseRelation.getQueryEffect();
+    }
+
 }