From b8ce61f6d6086d7887abd7d9c9aa00b7797c7ec2 Mon Sep 17 00:00:00 2001 From: peter Date: Thu, 27 Dec 2012 13:29:21 +0100 Subject: [PATCH] a hacky fix for IDEA-98228 Autocompletion for String does equalsIgnoreCase() instead of equals() --- .../completion/JavaCompletionStatistician.java | 3 ++- .../codeInsight/completion/normalSorting/EqualsStats.java | 8 ++++++++ .../completion/NormalCompletionOrderingTest.groovy | 8 ++++++++ 3 files changed, 18 insertions(+), 1 deletion(-) create mode 100644 java/java-tests/testData/codeInsight/completion/normalSorting/EqualsStats.java diff --git a/java/java-impl/src/com/intellij/codeInsight/completion/JavaCompletionStatistician.java b/java/java-impl/src/com/intellij/codeInsight/completion/JavaCompletionStatistician.java index 2f94661e33d5..d7ec101eb9f8 100644 --- a/java/java-impl/src/com/intellij/codeInsight/completion/JavaCompletionStatistician.java +++ b/java/java-impl/src/com/intellij/codeInsight/completion/JavaCompletionStatistician.java @@ -54,7 +54,8 @@ public class JavaCompletionStatistician extends CompletionStatistician{ PsiClass containingClass = ((PsiMember)o).getContainingClass(); if (containingClass != null) { - if (CommonClassNames.JAVA_LANG_OBJECT.equals(containingClass.getQualifiedName())) { + if (o instanceof PsiMethod && "getClass".equals(((PsiMethod) o).getName()) && + CommonClassNames.JAVA_LANG_OBJECT.equals(containingClass.getQualifiedName())) { return StatisticsInfo.EMPTY; } diff --git a/java/java-tests/testData/codeInsight/completion/normalSorting/EqualsStats.java b/java/java-tests/testData/codeInsight/completion/normalSorting/EqualsStats.java new file mode 100644 index 000000000000..d35a6c21af20 --- /dev/null +++ b/java/java-tests/testData/codeInsight/completion/normalSorting/EqualsStats.java @@ -0,0 +1,8 @@ +import java.util.HashMap; + +class Util { + void foo(int reaction, boolean rezet) { + "".eq + } + +} \ No newline at end of file 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 5bec97eec3ea..81466459ec26 100644 --- a/java/java-tests/testSrc/com/intellij/codeInsight/completion/NormalCompletionOrderingTest.groovy +++ b/java/java-tests/testSrc/com/intellij/codeInsight/completion/NormalCompletionOrderingTest.groovy @@ -392,6 +392,14 @@ import java.lang.annotation.Target; assertPreferredItems 0, 'get', 'getClass' } + public void testEqualsStats() { + checkPreferredItems 0, 'equals', 'equalsIgnoreCase' + incUseCount(lookup, 1) + assertPreferredItems 0, 'equalsIgnoreCase', 'equals' + incUseCount(lookup, 1) + checkPreferredItems 0, 'equals', 'equalsIgnoreCase' + } + public void testPreferClassToItsConstants() { checkPreferredItems 0, 'Calendar.FIELD_COUNT', 'Calendar', 'Calendar.AM' }