diff --git a/java/java-impl/src/com/intellij/psi/impl/source/codeStyle/ImportHelper.java b/java/java-impl/src/com/intellij/psi/impl/source/codeStyle/ImportHelper.java index 089ce9f55bf4..45af4f0488db 100644 --- a/java/java-impl/src/com/intellij/psi/impl/source/codeStyle/ImportHelper.java +++ b/java/java-impl/src/com/intellij/psi/impl/source/codeStyle/ImportHelper.java @@ -1186,6 +1186,9 @@ public final class ImportHelper { } if (refElement instanceof PsiClass psiClass) { + // Implicitly declared classed are not accessible outside the file, so it is not possible to have import statement on them. + if (refElement.getParent() instanceof PsiImplicitClass) continue; + String qName = psiClass.getQualifiedName(); if (qName == null || hasPackage(qName, thisPackageName)) continue; imports.add(new Import(qName, false)); diff --git a/java/java-tests/testData/psi/optimizeImports/InvalidExtendsList.java b/java/java-tests/testData/psi/optimizeImports/InvalidExtendsList.java new file mode 100644 index 000000000000..1c0ef43dbe84 --- /dev/null +++ b/java/java-tests/testData/psi/optimizeImports/InvalidExtendsList.java @@ -0,0 +1,7 @@ +package B; + +public class A extends { + public A() { + + } +} diff --git a/java/java-tests/testData/psi/optimizeImports/InvalidExtendsList_after.java b/java/java-tests/testData/psi/optimizeImports/InvalidExtendsList_after.java new file mode 100644 index 000000000000..1c0ef43dbe84 --- /dev/null +++ b/java/java-tests/testData/psi/optimizeImports/InvalidExtendsList_after.java @@ -0,0 +1,7 @@ +package B; + +public class A extends { + public A() { + + } +} diff --git a/java/java-tests/testSrc/com/intellij/java/psi/OptimizeImportsTest.java b/java/java-tests/testSrc/com/intellij/java/psi/OptimizeImportsTest.java index 19860bffed5a..33f69ca353e3 100644 --- a/java/java-tests/testSrc/com/intellij/java/psi/OptimizeImportsTest.java +++ b/java/java-tests/testSrc/com/intellij/java/psi/OptimizeImportsTest.java @@ -772,6 +772,8 @@ public class OptimizeImportsTest extends OptimizeImportsTestCase { public void testUnresolvedReferenceAfterParenthesis() { doTest(); } + + public void testInvalidExtendsList() { doTest(); } private void doTest() { doTest(".java");