- EVar var = (EVar)expression;
- Expression[] parametersArray = new Expression[parameters.size()];
- for(int i=0,j=parametersArray.length-1;i<parametersArray.length;++i,--j)
- parametersArray[i] = parameters.get(j);
- return new CHRLiteral(expression.location, new UnresolvedCHRRelation(var.location, var.name), parametersArray, remove, negated);
+ else if(expression instanceof ERecord) {
+ ERecord record = (ERecord)expression;
+ parameters = null;
+ fields = record.fields;
+ expression = record.constructor;
+ }
+ else // if(expression instanceof EVar)
+ parameters = Expression.EMPTY_ARRAY;
+ EVar var = (EVar)expression; // this should succeed because of isConstraint test
+ CHRLiteral literal = new CHRLiteral(location, new UnresolvedCHRRelation(var.location, var.name),
+ parameters, remove, negated);
+ literal.fields = fields;
+ return literal;