From 837ec9e77df1bf8d8d79d1158608ded2eb1c4ce7 Mon Sep 17 00:00:00 2001 From: peter Date: Fri, 13 Jun 2014 13:42:28 +0200 Subject: [PATCH] true/false should only be preferred after 'return' in smart completion --- .../intellij/codeInsight/completion/PreferByKindWeigher.java | 4 ++-- .../codeInsight/completion/NormalCompletionTest.groovy | 2 +- 2 files changed, 3 insertions(+), 3 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 0554a0f7a96b..645aac0e78f7 100644 --- a/java/java-impl/src/com/intellij/codeInsight/completion/PreferByKindWeigher.java +++ b/java/java-impl/src/com/intellij/codeInsight/completion/PreferByKindWeigher.java @@ -139,8 +139,8 @@ public class PreferByKindWeigher extends LookupElementWeigher { if (PsiKeyword.ELSE.equals(keyword) || PsiKeyword.FINALLY.equals(keyword)) { return MyResult.probableKeyword; } - if (PsiKeyword.TRUE.equals(keyword) || PsiKeyword.FALSE.equals(keyword)) { - boolean inReturn = PsiTreeUtil.getParentOfType(myPosition, PsiReturnStatement.class, false, PsiMember.class) != null; + if ((PsiKeyword.TRUE.equals(keyword) || PsiKeyword.FALSE.equals(keyword)) && myCompletionType == CompletionType.SMART) { + boolean inReturn = psiElement().withParents(PsiReferenceExpression.class, PsiReturnStatement.class).accepts(myPosition); return inReturn ? MyResult.probableKeyword : MyResult.normal; } if (PsiKeyword.INTERFACE.equals(keyword) && psiElement().afterLeaf("@").accepts(myPosition)) { diff --git a/java/java-tests/testSrc/com/intellij/codeInsight/completion/NormalCompletionTest.groovy b/java/java-tests/testSrc/com/intellij/codeInsight/completion/NormalCompletionTest.groovy index b050bd7c5ced..824c62cf3004 100644 --- a/java/java-tests/testSrc/com/intellij/codeInsight/completion/NormalCompletionTest.groovy +++ b/java/java-tests/testSrc/com/intellij/codeInsight/completion/NormalCompletionTest.groovy @@ -792,7 +792,7 @@ public class ListUtils { public void testDoubleFalse() throws Throwable { configureByFile(getTestName(false) + ".java"); - assertFirstStringItems("false", "fefefef", "float", "finalize"); + assertFirstStringItems("fefefef", "false", "float", "finalize"); } public void testSameNamedVariableInNestedClasses() throws Throwable {