From c2935ef5ea96a501b5459f9d8faf4aa28c8dd69f Mon Sep 17 00:00:00 2001 From: peter Date: Sat, 21 Jan 2017 12:25:50 +0100 Subject: [PATCH] java completion: disprefer primitive types inside generics (IDEA-166668) --- .../intellij/codeInsight/completion/PreferByKindWeigher.java | 3 ++- .../codeInsight/completion/NormalCompletionOrderingTest.groovy | 2 +- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/java/java-impl/src/com/intellij/codeInsight/completion/PreferByKindWeigher.java b/java/java-impl/src/com/intellij/codeInsight/completion/PreferByKindWeigher.java index 59bdffd45e1f..5b978f5aeb35 100644 --- a/java/java-impl/src/com/intellij/codeInsight/completion/PreferByKindWeigher.java +++ b/java/java-impl/src/com/intellij/codeInsight/completion/PreferByKindWeigher.java @@ -263,7 +263,8 @@ public class PreferByKindWeigher extends LookupElementWeigher { } if (JavaKeywordCompletion.PRIMITIVE_TYPES.contains(keyword) || PsiKeyword.VOID.equals(keyword)) { boolean inCallArg = psiElement().withParents(PsiReferenceExpression.class, PsiExpressionList.class).accepts(myPosition); - return inCallArg ? ThreeState.NO : ThreeState.UNSURE; + boolean inTypeArg = psiElement().inside(PsiReferenceParameterList.class).accepts(myPosition); + return inCallArg || inTypeArg ? ThreeState.NO : ThreeState.UNSURE; } return ThreeState.UNSURE; } diff --git a/java/java-tests/testSrc/com/intellij/codeInsight/completion/NormalCompletionOrderingTest.groovy b/java/java-tests/testSrc/com/intellij/codeInsight/completion/NormalCompletionOrderingTest.groovy index ed0ce35f6a2d..d511480b69ba 100644 --- a/java/java-tests/testSrc/com/intellij/codeInsight/completion/NormalCompletionOrderingTest.groovy +++ b/java/java-tests/testSrc/com/intellij/codeInsight/completion/NormalCompletionOrderingTest.groovy @@ -706,7 +706,7 @@ class ContainerUtil extends ContainerUtilRt { } void testPreferExpectedMethodTypeArg() { - checkPreferredItems 0, 'String' + checkPreferredItems 0, 'String', 'Usage' } void testMethodStatisticsPerQualifierType() {