]> gerrit.simantics Code Review - simantics/platform.git/blobdiff - bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/elaboration/chr/plan/AccessFactOp.java
(refs #7371) Support expression cloning for ECHRSelect
[simantics/platform.git] / bundles / org.simantics.scl.compiler / src / org / simantics / scl / compiler / elaboration / chr / plan / AccessFactOp.java
index 3ebbb03cf51bf78d5a52676683d6110ba109f8d1..ab37d253a50dbcfdf709553a13230f9f1f89fe54 100644 (file)
@@ -37,9 +37,9 @@ public class AccessFactOp extends PlanOp {
 
     @Override
     public void generateCode(CompilationContext context, PlanContext planContext, CodeWriter w) {
-        IVal inputVal = inputFact.toVal(context.environment, w);
+        IVal inputVal = inputFact.toVal(context, w);
         for(int i=0;i<variables.length;++i)
-            variables[i].setVal(w.apply(location, constraint.accessComponent(i), inputVal));
+            variables[i].setVal(constraint.accessComponent(location, w, inputVal, i));
         IVal activeId = w.apply(location, constraint.accessId, inputVal);
         CodeWriter end = constraint.mayBeRemoved() ? w.createBlock() : null;
         planContext.partnerFacts.add(new PartnerFact(true, activeId, constraint, inputVal, constraint.mayBeRemoved(), killAfterMatch, null, null, end == null ? null : end.getContinuation()));
@@ -47,5 +47,4 @@ public class AccessFactOp extends PlanOp {
         if(end != null)
             end.return_(BooleanConstant.FALSE);
     }
-
 }