for (; a < getMinimumArguments()-1; a++) {
makeParameterArgument(arity, stmts, args, a);
}
for (; a < numParams-1; a++) {
// Extract from the sequential
SyntheticName name = parameterName(a);
JCExpression get = gen.make().Apply(null,
gen.makeQualIdent(makeParamIdent(gen, arity), "get"),
List.<JCExpression>of(gen.expressionGen().applyErasureAndBoxing(gen.make().Literal(a),
gen.typeFact().getIntegerDeclaration().getType(), false, BoxingStrategy.BOXED, gen.typeFact().getIntegerDeclaration().getType())));
get = gen.expressionGen().applyErasureAndBoxing(get,
parameterTypes.get(a),
true, true, BoxingStrategy.UNBOXED,
parameterTypes.get(a), 0);
Parameter param = paramLists.getParameters().get(a);
makeVarForParameter(stmts, param, parameterTypes.get(a),
name, get);
args.append(name.makeIdent());
}
// Get the rest of the sequential using spanFrom()
SyntheticName name = parameterName(numParams-1);
JCExpression spanFrom = gen.make().Apply(null,
gen.makeQualIdent(makeParamIdent(gen, arity), "spanFrom"),
List.<JCExpression>of(gen.expressionGen().applyErasureAndBoxing(gen.make().Literal(a),
gen.typeFact().getIntegerDeclaration().getType(), false, BoxingStrategy.BOXED, gen.typeFact().getIntegerDeclaration().getType())));
spanFrom = gen.expressionGen().applyErasureAndBoxing(spanFrom,
parameterTypes.get(a),
true, true, BoxingStrategy.UNBOXED,
parameterTypes.get(a), 0);
Parameter param = paramLists.getParameters().get(numParams-1);
makeVarForParameter(stmts, param, parameterTypes.get(a),
name, spanFrom);
args.append(name.makeIdent());
}