IPP: keep type parameter list if present (IDEA-175282)

This commit is contained in:
Bas Leijdekkers
2017-07-20 12:00:30 +02:00
parent 9312fa7646
commit 5ce1ab82c5
2 changed files with 26 additions and 0 deletions
@@ -72,6 +72,12 @@ public class ReplaceWithArraysAsListIntention extends Intention implements HighP
protected void processIntention(@NotNull PsiElement element) {
final PsiMethodCallExpression methodCallExpression = (PsiMethodCallExpression)element;
final PsiExpressionList argumentList = methodCallExpression.getArgumentList();
final PsiReferenceExpression methodExpression = methodCallExpression.getMethodExpression();
final PsiReferenceParameterList parameterList = methodExpression.getParameterList();
if (parameterList != null) {
final int dotIndex = replacementText.lastIndexOf('.') + 1;
replacementText = replacementText.substring(0, dotIndex) + parameterList.getText() + replacementText.substring(dotIndex);
}
PsiReplacementUtil.replaceExpressionAndShorten(methodCallExpression, replacementText + argumentList.getText());
}
@@ -60,6 +60,26 @@ public class ReplaceWithArraysAsListIntentionTest extends IPPTestCase {
);
}
public void testTypeParameters() {
doTest(
"import java.util.*;" +
"class X {" +
" private List<Object[]> rows;" +
" List<Object[]> getRows() {" +
" return rows == null ? /*_Replace with 'java.util.Arrays.asList()'*/Collections.<Object[]>emptyList() : rows;" +
" }" +
"}",
"import java.util.*;" +
"class X {" +
" private List<Object[]> rows;" +
" List<Object[]> getRows() {" +
" return rows == null ? Arrays.<Object[]>asList() : rows;" +
" }" +
"}"
);
}
@NotNull
@Override
protected LightProjectDescriptor getProjectDescriptor() {