Source:
<code>protected static ICPPEvaluation[] instantiateCommaSeparatedSubexpressions( ICPPEvaluation[] subexpressions, ICPPTemplateParameterMap tpMap, int packOffset, ICPPClassSpecialization within, int maxdepth, IASTNode point) <START> { <END> ICPPEvaluation[] result = subexpressions; int resultShift = 0; for (int i = 0; i < subexpressions.length; i++) { ICPPEvaluation origEval = subexpressions[i]; ICPPEvaluation newEval; if (origEval instanceof EvalFixed && ((EvalFixed) origEval).getTypeOrFunctionSet(point) instanceof ICPPParameterPackType) { origEval = ((EvalFixed) origEval).getValue().getEvaluation(); int packSize = origEval.determinePackSize(tpMap); if (packSize == CPPTemplates.PACK_SIZE_FAIL || packSize == CPPTemplates.PACK_SIZE_NOT_FOUND) { newEval = origEval; } else if (packSize == CPPTemplates.PACK_SIZE_DEFER) { newEval = origEval; } else { int shift = packSize - 1; ICPPEvaluation[] newResult = new ICPPEvaluation[subexpressions.length + resultShift + shift]; System.arraycopy(result, 0, newResult, 0, i + resultShift); for (int j = 0; j < packSize; ++j) { newEval = origEval.instantiate(tpMap, j, within, maxdepth, point); newResult[i + resultShift + j] = newEval; } result = newResult; resultShift += shift; continue; } } else { newEval = origEval.instantiate(tpMap, packOffset, within, maxdepth, point); } if (result != subexpressions) result[i + resultShift] = newEval; else if (newEval != origEval) { assert resultShift == 0; result = new ICPPEvaluation[subexpressions.length]; System.arraycopy(subexpressions, 0, result, 0, i); result[i] = newEval; } } return result; }</code><technical_language>Move previous line</technical_language>

Target:
protected static ICPPEvaluation[] instantiateCommaSeparatedSubexpressions( ICPPEvaluation[] subexpressions, ICPPTemplateParameterMap tpMap, int packOffset, ICPPClassSpecialization within, int maxdepth, IASTNode point) { ICPPEvaluation[] result = subexpressions; int resultShift = 0; for (int i = 0; i < subexpressions.length; i++) { ICPPEvaluation origEval = subexpressions[i]; ICPPEvaluation newEval; if (origEval instanceof EvalParameterPack) { origEval = ((EvalParameterPack) origEval).getExpansionPattern(); if (origEval == null) { newEval = EvalFixed.INCOMPLETE; } else { int packSize = origEval.determinePackSize(tpMap); if (packSize == CPPTemplates.PACK_SIZE_FAIL || packSize == CPPTemplates.PACK_SIZE_NOT_FOUND) { newEval = EvalFixed.INCOMPLETE; } else if (packSize == CPPTemplates.PACK_SIZE_DEFER) { newEval = origEval; } else { int shift = packSize - 1; ICPPEvaluation[] newResult = new ICPPEvaluation[subexpressions.length + resultShift + shift]; System.arraycopy(result, 0, newResult, 0, i + resultShift); for (int j = 0; j < packSize; ++j) { newEval = origEval.instantiate(tpMap, j, within, maxdepth, point); newResult[i + resultShift + j] = newEval; } result = newResult; resultShift += shift; continue; } } } else { newEval = origEval.instantiate(tpMap, packOffset, within, maxdepth, point); } if (result != subexpressions) result[i + resultShift] = newEval; else if (newEval != origEval) { assert resultShift == 0; result = new ICPPEvaluation[subexpressions.length]; System.arraycopy(subexpressions, 0, result, 0, i); result[i] = newEval; } } return result; }