From b49f77fe1caed56375a483517b7d77c81b1bbb02 Mon Sep 17 00:00:00 2001 From: Anna Kozlova Date: Thu, 8 Oct 2020 14:24:33 +0200 Subject: [PATCH] java: complete classes with dollars in the middle (IDEA-247596) requested for future panama boxes GitOrigin-RevId: 188d54e94cc8c6dd4eb7818b3bceb004031b4984 --- .../completion/scope/JavaCompletionProcessor.java | 2 +- .../completion/normal/ClassesWithDollarInTheMiddle.java | 5 +++++ .../codeInsight/completion/NormalCompletionTest.groovy | 7 +++++++ 3 files changed, 13 insertions(+), 1 deletion(-) create mode 100644 java/java-tests/testData/codeInsight/completion/normal/ClassesWithDollarInTheMiddle.java 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", """