diff --git a/java/java-impl/src/com/intellij/codeInsight/completion/JavaCompletionData.java b/java/java-impl/src/com/intellij/codeInsight/completion/JavaCompletionData.java index c83b0a949219..036ddcbded22 100644 --- a/java/java-impl/src/com/intellij/codeInsight/completion/JavaCompletionData.java +++ b/java/java-impl/src/com/intellij/codeInsight/completion/JavaCompletionData.java @@ -572,8 +572,10 @@ public class JavaCompletionData extends JavaAwareCompletionData { } static void addExpectedTypeMembers(CompletionParameters parameters, final CompletionResultSet result) { - for (final ExpectedTypeInfo info : JavaSmartCompletionContributor.getExpectedTypes(parameters)) { - new JavaMembersGetter(info.getDefaultType(), parameters).addMembers(parameters.getInvocationCount() > 1, result); + if (parameters.getInvocationCount() <= 1) { // on second completion, StaticMemberProcessor will suggest those + for (final ExpectedTypeInfo info : JavaSmartCompletionContributor.getExpectedTypes(parameters)) { + new JavaMembersGetter(info.getDefaultType(), parameters).addMembers(false, result); + } } } diff --git a/java/java-tests/testData/codeInsight/completion/normal/NoStaticDuplicatesFromExpectedMemberFactories.java b/java/java-tests/testData/codeInsight/completion/normal/NoStaticDuplicatesFromExpectedMemberFactories.java new file mode 100644 index 000000000000..bb323ec83f46 --- /dev/null +++ b/java/java-tests/testData/codeInsight/completion/normal/NoStaticDuplicatesFromExpectedMemberFactories.java @@ -0,0 +1,15 @@ +public class Foo { + + void foo() { + Zoo z = xcreatex + } + +} + +class Zoo { } + +class ZooFactory { + static Zoo xcreateZoo() {} + static Zoo xcreateZoo(int a) {} + static Object xcreateElephant() {} +} \ No newline at end of file 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 d90585933145..ba38fd1a45ad 100644 --- a/java/java-tests/testSrc/com/intellij/codeInsight/completion/NormalCompletionTest.groovy +++ b/java/java-tests/testSrc/com/intellij/codeInsight/completion/NormalCompletionTest.groovy @@ -1458,4 +1458,11 @@ class Bar { public void testNoJavaLangPackagesInImport() { doAntiTest() } + public void testNoStaticDuplicatesFromExpectedMemberFactories() { + configure() + myFixture.complete(CompletionType.BASIC, 2) + myFixture.assertPreferredCompletionItems(0, "xcreateZoo", "xcreateElephant"); + } + + }