diff --git a/java/java-psi-impl/src/com/intellij/psi/impl/source/tree/java/PsiReferenceExpressionImpl.java b/java/java-psi-impl/src/com/intellij/psi/impl/source/tree/java/PsiReferenceExpressionImpl.java index adb12f072107..fcae875ef1a7 100644 --- a/java/java-psi-impl/src/com/intellij/psi/impl/source/tree/java/PsiReferenceExpressionImpl.java +++ b/java/java-psi-impl/src/com/intellij/psi/impl/source/tree/java/PsiReferenceExpressionImpl.java @@ -32,7 +32,6 @@ import com.intellij.psi.impl.PsiImplUtil; import com.intellij.psi.impl.PsiManagerEx; import com.intellij.psi.impl.source.SourceJavaCodeReference; import com.intellij.psi.impl.source.SourceTreeToPsiMap; -import com.intellij.psi.impl.source.codeStyle.CodeEditUtil; import com.intellij.psi.impl.source.resolve.*; import com.intellij.psi.impl.source.tree.*; import com.intellij.psi.infos.CandidateInfo; @@ -492,6 +491,11 @@ public class PsiReferenceExpressionImpl extends PsiReferenceExpressionBase imple return false; } + PsiClass containingClass = aClass.getContainingClass(); + if (containingClass != null && !seemsScrambled(containingClass)) { + return false; + } + final String name = aClass.getName(); return name != null && !name.isEmpty() && name.length() <= 2; } diff --git a/java/java-tests/testData/codeInsight/completion/normal/seemsScrambled.jar b/java/java-tests/testData/codeInsight/completion/normal/seemsScrambled.jar new file mode 100644 index 000000000000..bbdd64987122 Binary files /dev/null and b/java/java-tests/testData/codeInsight/completion/normal/seemsScrambled.jar differ 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 72aa72138dff..2117c9e877f2 100644 --- a/java/java-tests/testSrc/com/intellij/codeInsight/completion/HeavyNormalCompletionTest.groovy +++ b/java/java-tests/testSrc/com/intellij/codeInsight/completion/HeavyNormalCompletionTest.groovy @@ -31,7 +31,6 @@ import com.intellij.testFramework.PsiTestUtil import com.intellij.testFramework.fixtures.JavaCodeInsightFixtureTestCase import com.intellij.ui.JBColor import org.jetbrains.annotations.NotNull - /** * @author peter */ @@ -204,4 +203,18 @@ public class SocketChannel { assert p.itemTextForeground == JBColor.foreground() } + public void "test seemingly scrambled subclass"() { + PsiTestUtil.addLibrary(myModule, JavaTestUtil.getJavaTestDataPath() + "/codeInsight/completion/normal/seemsScrambled.jar") + myFixture.configureByText 'a.java', '''import test.Books; + +class Foo {{ Books.Test.v }} +''' + myFixture.completeBasic() + myFixture.checkResult '''import test.Books; + +class Foo {{ Books.Test.v1 }} +''' + + } + }