public void generateCode(CompilationContext context, PlanContext planContext, CodeWriter w) {
IVal inputVal = inputFact.toVal(context.environment, 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()));