diff --git a/java/java-impl/src/com/intellij/codeInsight/completion/scope/JavaCompletionProcessor.java b/java/java-impl/src/com/intellij/codeInsight/completion/scope/JavaCompletionProcessor.java index fc52026a2b83..63c54155aaa5 100644 --- a/java/java-impl/src/com/intellij/codeInsight/completion/scope/JavaCompletionProcessor.java +++ b/java/java-impl/src/com/intellij/codeInsight/completion/scope/JavaCompletionProcessor.java @@ -112,7 +112,7 @@ public final class JavaCompletionProcessor implements PsiScopeProcessor, Element @ApiStatus.Internal public static boolean seemsInternal(PsiClass clazz) { String name = clazz.getName(); - return name != null && name.contains("$"); + return name != null && name.startsWith("$"); } @Override diff --git a/java/java-tests/testData/codeInsight/completion/normal/ClassesWithDollarInTheMiddle.java b/java/java-tests/testData/codeInsight/completion/normal/ClassesWithDollarInTheMiddle.java new file mode 100644 index 000000000000..63e2b3a16fd7 --- /dev/null +++ b/java/java-tests/testData/codeInsight/completion/normal/ClassesWithDollarInTheMiddle.java @@ -0,0 +1,5 @@ +import imported.*; + +class C { + WithD +} diff --git a/java/java-tests/testSrc/com/intellij/java/codeInsight/completion/NormalCompletionTest.groovy b/java/java-tests/testSrc/com/intellij/java/codeInsight/completion/NormalCompletionTest.groovy index 09a8ac69b575..cd03123d843e 100644 --- a/java/java-tests/testSrc/com/intellij/java/codeInsight/completion/NormalCompletionTest.groovy +++ b/java/java-tests/testSrc/com/intellij/java/codeInsight/completion/NormalCompletionTest.groovy @@ -1744,6 +1744,13 @@ class Foo extends myClass doAntiTest() } + void testClassesWithDollarInTheMiddle() { + myFixture.addClass('package imported; public class Foo$WithDollarImported {}') + configureByTestName() + myFixture.completeBasic() + assert 'Foo$WithDollarImported' in myFixture.lookupElementStrings + } + @NeedsIndex.ForStandardLibrary void "test don't show static inner class after instance qualifier"() { myFixture.configureByText "a.java", """