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");