diff --git a/java/java-impl/src/com/intellij/psi/filters/getters/MembersGetter.java b/java/java-impl/src/com/intellij/psi/filters/getters/MembersGetter.java index 9e13bdc576de..14f4e7e67731 100644 --- a/java/java-impl/src/com/intellij/psi/filters/getters/MembersGetter.java +++ b/java/java-impl/src/com/intellij/psi/filters/getters/MembersGetter.java @@ -90,11 +90,11 @@ public abstract class MembersGetter { public void processMembers(final Consumer results, @Nullable final PsiClass where, final boolean acceptMethods, final boolean searchInheritors) { - if (where == null || CommonClassNames.JAVA_LANG_STRING.equals(where.getQualifiedName())) return; + if (where == null || isPrimitiveClass(where)) return; final boolean searchFactoryMethods = searchInheritors && !CommonClassNames.JAVA_LANG_OBJECT.equals(where.getQualifiedName()) && - !CommonClassNames.JAVA_LANG_STRING.equals(where.getQualifiedName()); + !isPrimitiveClass(where); final Project project = myPlace.getProject(); final GlobalSearchScope scope = myPlace.getResolveScope(); @@ -127,6 +127,12 @@ public abstract class MembersGetter { } } + private static boolean isPrimitiveClass(PsiClass where) { + String qname = where.getQualifiedName(); + if (qname == null || !qname.startsWith("java.lang.")) return false; + return CommonClassNames.JAVA_LANG_STRING.equals(qname) || InheritanceUtil.isInheritor(where, CommonClassNames.JAVA_LANG_NUMBER); + } + private void doProcessMembers(boolean acceptMethods, Consumer results, boolean isExpectedTypeMember, Collection declarations) { diff --git a/java/java-tests/testData/codeInsight/completion/normalSorting/NoNumberValueOf.java b/java/java-tests/testData/codeInsight/completion/normalSorting/NoNumberValueOf.java new file mode 100644 index 000000000000..d53e3c294eb5 --- /dev/null +++ b/java/java-tests/testData/codeInsight/completion/normalSorting/NoNumberValueOf.java @@ -0,0 +1,7 @@ +public class Foo { + + void foo(Object value) { + Integer i = valx + } +} + 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 7f94ec458922..7824a64596ef 100644 --- a/java/java-tests/testSrc/com/intellij/codeInsight/completion/NormalCompletionOrderingTest.groovy +++ b/java/java-tests/testSrc/com/intellij/codeInsight/completion/NormalCompletionOrderingTest.groovy @@ -625,6 +625,10 @@ interface TxANotAnno {} checkPreferredItems 0, 'XException', 'XClass', 'XIntf' } + public void testNoNumberValueOf() { + checkPreferredItems 0, 'value' + } + public void testGlobalStaticMemberStats() { configureNoCompletion(getTestName(false) + ".java") myFixture.complete(CompletionType.BASIC, 2)