]> gerrit.simantics Code Review - simantics/platform.git/blobdiff - bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/elaboration/relations/LocalRelation.java
Merged changes from feature/scl to master.
[simantics/platform.git] / bundles / org.simantics.scl.compiler / src / org / simantics / scl / compiler / elaboration / relations / LocalRelation.java
index 0a193d6c1e89806b0daff39a8b2ffc7c87ea2622..3fbeef75525671c41daee45dbd80e8b9213015f2 100644 (file)
@@ -7,8 +7,7 @@ import static org.simantics.scl.compiler.elaboration.expressions.Expressions.var
 import static org.simantics.scl.compiler.elaboration.expressions.Expressions.vars;
 
 import org.simantics.scl.compiler.common.exceptions.InternalCompilerError;
-import org.simantics.scl.compiler.common.names.Name;
-import org.simantics.scl.compiler.elaboration.expressions.ERuleset;
+import org.simantics.scl.compiler.common.names.Names;
 import org.simantics.scl.compiler.elaboration.expressions.EVariable;
 import org.simantics.scl.compiler.elaboration.expressions.Expressions;
 import org.simantics.scl.compiler.elaboration.expressions.Variable;
@@ -39,7 +38,7 @@ public class LocalRelation extends AbstractRelation {
     
     private void createTable() {
         this.table = newVar("table" + name, 
-                Types.apply(ERuleset.MSet, Types.tuple(parameterTypes)));
+                Types.apply(Names.MSet_T, Types.tuple(parameterTypes)));
     }
     
     public int getArity() {
@@ -74,8 +73,6 @@ public class LocalRelation extends AbstractRelation {
         return 0;
     }
     
-    private static final Name MSet_contains = Name.create("MSet", "contains"); 
-    private static final Name EQ = Name.create("Prelude", "==");
     @Override
     public void generate(long location,
             QueryCompilationContext context,
@@ -83,8 +80,8 @@ public class LocalRelation extends AbstractRelation {
         if(table == null)
             throw new InternalCompilerError(location, "Variable table is undefined.");
         if(boundVariables + 1 == 1 << parameters.length)
-            context.condition(apply(context, Types.PROC,
-                    MSet_contains, Types.tuple(parameterTypes),
+            context.condition(apply(context.getCompilationContext(), Types.PROC,
+                    Names.MSet_contains, Types.tuple(parameterTypes),
                     var(table),
                     tuple(vars(parameters))
                     ));
@@ -98,9 +95,8 @@ public class LocalRelation extends AbstractRelation {
             Variable row = new Variable("row", Types.tuple(parameterTypes));
             for(int i=0;i<parameters.length;++i)
                 if(((boundVariables>>i)&1) == 1)
-                    context.condition(apply(context, Types.NO_EFFECTS,
-                            EQ, parameterTypes[i],
-                            context.getEvidence(location, Types.pred(Types.EQ, parameterTypes[i])),
+                    context.condition(apply(context.getCompilationContext(), Types.NO_EFFECTS,
+                            Names.Builtin_equals, parameterTypes[i],
                             var(aux[i]),
                             var(parameters[i])
                             ));