diff --git a/java/java-impl/src/com/intellij/codeInsight/completion/JavaCompletionContributor.java b/java/java-impl/src/com/intellij/codeInsight/completion/JavaCompletionContributor.java index 1939ef31d060..a196cf93eec4 100644 --- a/java/java-impl/src/com/intellij/codeInsight/completion/JavaCompletionContributor.java +++ b/java/java-impl/src/com/intellij/codeInsight/completion/JavaCompletionContributor.java @@ -768,7 +768,8 @@ public class JavaCompletionContributor extends CompletionContributor { iterator.advance(); } - if (!iterator.atEnd() && (iterator.getTokenType() == JavaTokenType.LPARENTH)) { + if (!iterator.atEnd() && iterator.getTokenType() == JavaTokenType.LPARENTH && PsiTreeUtil.getParentOfType(ref, PsiExpression.class, PsiClass.class) == null) { + // looks like a method declaration, e.g. StringBuimethodName() inside a class return true; } diff --git a/java/java-tests/testData/codeInsight/completion/normal/IfConditionLt.java b/java/java-tests/testData/codeInsight/completion/normal/IfConditionLt.java new file mode 100644 index 000000000000..580a2eedb323 --- /dev/null +++ b/java/java-tests/testData/codeInsight/completion/normal/IfConditionLt.java @@ -0,0 +1,9 @@ +class Zoo { + + void foo(int x) { + if (x < getAnnotationsAreaOffset()); + + } + + int getAnnotationsAreaOffset() {} +} diff --git a/java/java-tests/testSrc/com/intellij/codeInsight/completion/HeavyNormalCompletionTest.groovy b/java/java-tests/testSrc/com/intellij/codeInsight/completion/HeavyNormalCompletionTest.groovy index 2117c9e877f2..3852327e36e9 100644 --- a/java/java-tests/testSrc/com/intellij/codeInsight/completion/HeavyNormalCompletionTest.groovy +++ b/java/java-tests/testSrc/com/intellij/codeInsight/completion/HeavyNormalCompletionTest.groovy @@ -117,7 +117,7 @@ public class HeavyNormalCompletionTest extends JavaCodeInsightFixtureTestCase { myFixture.completeBasic(); assertOrderedEquals(myFixture.getLookupElementStrings(), "getAaa", "getBbb"); myFixture.getEditor().getCaretModel().moveToOffset(myFixture.getEditor().getCaretModel().getOffset() + 2); - assertNull(myFixture.completeBasic()); + assert myFixture.completeBasic() == null } public void testQualifyInaccessibleClassName() throws Exception { 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 df9087e84238..22a692ec25b4 100644 --- a/java/java-tests/testSrc/com/intellij/codeInsight/completion/NormalCompletionTest.groovy +++ b/java/java-tests/testSrc/com/intellij/codeInsight/completion/NormalCompletionTest.groovy @@ -512,6 +512,11 @@ public class NormalCompletionTest extends LightFixtureCompletionTestCase { public void testBreakInIfCondition() throws Throwable { doTest(); } public void testAccessStaticViaInstance() throws Throwable { doTest(); } + public void testIfConditionLt() { + configure() + myFixture.assertPreferredCompletionItems 0, 'getAnnotationsAreaOffset' + } + public void testAccessStaticViaInstanceSecond() throws Throwable { configure() myFixture.complete(CompletionType.BASIC, 2)