diff --git a/java/java-impl/src/com/intellij/codeInsight/completion/JavaMemberNameCompletionContributor.java b/java/java-impl/src/com/intellij/codeInsight/completion/JavaMemberNameCompletionContributor.java index 0009a97aa7e7..2b59710b78d1 100644 --- a/java/java-impl/src/com/intellij/codeInsight/completion/JavaMemberNameCompletionContributor.java +++ b/java/java-impl/src/com/intellij/codeInsight/completion/JavaMemberNameCompletionContributor.java @@ -82,7 +82,9 @@ public final class JavaMemberNameCompletionContributor extends CompletionContrib completeComponentName(lookupSet, component, result.getPrefixMatcher()); } - if (PsiJavaPatterns.psiElement().nameIdentifierOf(PsiJavaPatterns.psiMethod().withParent(PsiClass.class)).accepts(position)) { + if (PsiJavaPatterns.psiElement().nameIdentifierOf(PsiJavaPatterns.psiMethod().withParent(PsiClass.class)).accepts(position) && + !(PsiTreeUtil.prevVisibleLeaf(position) instanceof PsiJavaToken javaToken && + javaToken.getTokenType() == JavaTokenType.DOT)) { completeMethodName(lookupSet, parameters.getPosition().getParent(), result.getPrefixMatcher()); } diff --git a/java/java-tests/testData/codeInsight/completion/normal/DotInsideConstructor.java b/java/java-tests/testData/codeInsight/completion/normal/DotInsideConstructor.java new file mode 100644 index 000000000000..1be047c1bb5c --- /dev/null +++ b/java/java-tests/testData/codeInsight/completion/normal/DotInsideConstructor.java @@ -0,0 +1,9 @@ +package org.example; + +public class Person { + private String a; + + public Person(String a).Pe { + this.a = a; + } +} diff --git a/java/java-tests/testData/codeInsight/completion/normal/DotInsideConstructor_after.java b/java/java-tests/testData/codeInsight/completion/normal/DotInsideConstructor_after.java new file mode 100644 index 000000000000..1be047c1bb5c --- /dev/null +++ b/java/java-tests/testData/codeInsight/completion/normal/DotInsideConstructor_after.java @@ -0,0 +1,9 @@ +package org.example; + +public class Person { + private String a; + + public Person(String a).Pe { + this.a = a; + } +} diff --git a/java/java-tests/testSrc/com/intellij/java/codeInsight/completion/NormalCompletionTest.java b/java/java-tests/testSrc/com/intellij/java/codeInsight/completion/NormalCompletionTest.java index 3f9a70365bf6..65f0b653303e 100644 --- a/java/java-tests/testSrc/com/intellij/java/codeInsight/completion/NormalCompletionTest.java +++ b/java/java-tests/testSrc/com/intellij/java/codeInsight/completion/NormalCompletionTest.java @@ -3258,4 +3258,10 @@ public class NormalCompletionTest extends NormalCompletionTestCase { myFixture.completeBasic(); myFixture.checkResultByFile(getTestName(false) + "_after.java"); } + + public void testDotInsideConstructor() { + configureByTestName(); + myFixture.completeBasic(); + myFixture.checkResultByFile(getTestName(false) + "_after.java"); + } }