mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
introduce parameter object: put extracted param object at place of the first parameter which was merged (IDEA-108186)
This commit is contained in:
+11
-3
@@ -94,18 +94,26 @@ public class MergeMethodArguments extends FixableUsageInfo {
|
||||
}
|
||||
final List<ParameterInfoImpl> parametersInfo = new ArrayList<ParameterInfoImpl>();
|
||||
final PsiClassType classType = JavaPsiFacade.getElementFactory(getProject()).createType(psiClass, subst);
|
||||
parametersInfo.add(new ParameterInfoImpl(-1, parameterName, classType, null) {
|
||||
|
||||
final ParameterInfoImpl mergedParamInfo = new ParameterInfoImpl(-1, parameterName, classType, null) {
|
||||
@Override
|
||||
public PsiExpression getValue(final PsiCallExpression expr) throws IncorrectOperationException {
|
||||
return (PsiExpression)JavaCodeStyleManager.getInstance(getProject()).shortenClassReferences(psiFacade.getElementFactory().createExpressionFromText(getMergedParam(expr), expr));
|
||||
return (PsiExpression)JavaCodeStyleManager.getInstance(getProject())
|
||||
.shortenClassReferences(psiFacade.getElementFactory().createExpressionFromText(getMergedParam(expr), expr));
|
||||
}
|
||||
});
|
||||
};
|
||||
|
||||
int firstIncludedIdx = -1;
|
||||
final PsiParameter[] parameters = method.getParameterList().getParameters();
|
||||
for (int i = 0; i < parameters.length; i++) {
|
||||
if (!isParameterToMerge(i)) {
|
||||
parametersInfo.add(new ParameterInfoImpl(i, parameters[i].getName(), parameters[i].getType()));
|
||||
} else if (firstIncludedIdx == -1) {
|
||||
firstIncludedIdx = i;
|
||||
}
|
||||
}
|
||||
|
||||
parametersInfo.add(firstIncludedIdx == -1 ? 0 : firstIncludedIdx, mergedParamInfo);
|
||||
final SmartPsiElementPointer<PsiMethod> meth = SmartPointerManager.getInstance(getProject()).createSmartPsiElementPointer(method);
|
||||
|
||||
Runnable performChangeSignatureRunnable = new Runnable() {
|
||||
|
||||
Reference in New Issue
Block a user