From 4e3b1041697e310e78a8642ec497d9e1d9f94a7b Mon Sep 17 00:00:00 2001 From: "Anna.Kozlova" Date: Mon, 13 Mar 2017 15:59:08 +0100 Subject: [PATCH] fix completion context to collapse to diamonds (IDEA-169491) --- .../codeInsight/completion/JavaInheritorsGetter.java | 2 +- .../DiamondCollapsedWithMethodTypeParameter-out.java | 8 ++++++++ .../DiamondCollapsedWithMethodTypeParameter.java | 8 ++++++++ .../codeInsight/completion/SmartType17CompletionTest.java | 4 ++++ 4 files changed, 21 insertions(+), 1 deletion(-) create mode 100644 java/java-tests/testData/codeInsight/completion/smartType/DiamondCollapsedWithMethodTypeParameter-out.java create mode 100644 java/java-tests/testData/codeInsight/completion/smartType/DiamondCollapsedWithMethodTypeParameter.java diff --git a/java/java-impl/src/com/intellij/codeInsight/completion/JavaInheritorsGetter.java b/java/java-impl/src/com/intellij/codeInsight/completion/JavaInheritorsGetter.java index 66d7649bc0b7..bbc61536e296 100644 --- a/java/java-impl/src/com/intellij/codeInsight/completion/JavaInheritorsGetter.java +++ b/java/java-impl/src/com/intellij/codeInsight/completion/JavaInheritorsGetter.java @@ -159,7 +159,7 @@ public class JavaInheritorsGetter extends CompletionProvider()", parameters.getOriginalFile()); + .createStatementFromText(canonicalText + " v = new " + erasedText + "<>()", parameters.getPosition()); final PsiVariable declaredVar = (PsiVariable)((PsiDeclarationStatement)statement).getDeclaredElements()[0]; final PsiNewExpression initializer = (PsiNewExpression)declaredVar.getInitializer(); final boolean hasDefaultConstructorOrNoGenericsOne = PsiDiamondTypeImpl.hasDefaultConstructor(psiClass) || diff --git a/java/java-tests/testData/codeInsight/completion/smartType/DiamondCollapsedWithMethodTypeParameter-out.java b/java/java-tests/testData/codeInsight/completion/smartType/DiamondCollapsedWithMethodTypeParameter-out.java new file mode 100644 index 000000000000..c7a1ec9bed6b --- /dev/null +++ b/java/java-tests/testData/codeInsight/completion/smartType/DiamondCollapsedWithMethodTypeParameter-out.java @@ -0,0 +1,8 @@ +import java.util.ArrayList; + +class Test { + + ArrayList foo () { + return new ArrayList<>(); + } +} diff --git a/java/java-tests/testData/codeInsight/completion/smartType/DiamondCollapsedWithMethodTypeParameter.java b/java/java-tests/testData/codeInsight/completion/smartType/DiamondCollapsedWithMethodTypeParameter.java new file mode 100644 index 000000000000..29c836a8d914 --- /dev/null +++ b/java/java-tests/testData/codeInsight/completion/smartType/DiamondCollapsedWithMethodTypeParameter.java @@ -0,0 +1,8 @@ +import java.util.ArrayList; + +class Test { + + ArrayList foo () { + return new Arr + } +} diff --git a/java/java-tests/testSrc/com/intellij/codeInsight/completion/SmartType17CompletionTest.java b/java/java-tests/testSrc/com/intellij/codeInsight/completion/SmartType17CompletionTest.java index cee5987f8c5b..2336adced00a 100644 --- a/java/java-tests/testSrc/com/intellij/codeInsight/completion/SmartType17CompletionTest.java +++ b/java/java-tests/testSrc/com/intellij/codeInsight/completion/SmartType17CompletionTest.java @@ -42,6 +42,10 @@ public class SmartType17CompletionTest extends LightFixtureCompletionTestCase { doTest(); } + public void testDiamondCollapsedWithMethodTypeParameter() throws Exception { + doTest(); + } + public void testDiamondNotCollapsed() throws Exception { doTest(); }