From 00a12f6311cfeb903f98af475f3d13009b9e6325 Mon Sep 17 00:00:00 2001 From: Bas Leijdekkers Date: Tue, 19 Aug 2025 15:19:38 +0200 Subject: [PATCH] Java: avoid CCE when class is not inside a PsiJavaFile GitOrigin-RevId: 7de7fb69e89b16488e66e1912a2f38dd61a1f7e8 --- .../ExplicitToImplicitClassMigrationInspection.java | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/java/java-impl-inspections/src/com/intellij/codeInspection/ExplicitToImplicitClassMigrationInspection.java b/java/java-impl-inspections/src/com/intellij/codeInspection/ExplicitToImplicitClassMigrationInspection.java index 62bd3b1ec7f1..b1be6dc71e95 100644 --- a/java/java-impl-inspections/src/com/intellij/codeInspection/ExplicitToImplicitClassMigrationInspection.java +++ b/java/java-impl-inspections/src/com/intellij/codeInspection/ExplicitToImplicitClassMigrationInspection.java @@ -1,4 +1,4 @@ -// Copyright 2000-2024 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license. +// Copyright 2000-2025 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license. package com.intellij.codeInspection; import com.intellij.codeInsight.TestFrameworks; @@ -57,7 +57,7 @@ public final class ExplicitToImplicitClassMigrationInspection extends AbstractBa return new JavaElementVisitor() { @Override public void visitClass(@NotNull PsiClass aClass) { - if (aClass.isInterface() || aClass.isRecord() || aClass.isEnum()) { + if (aClass.isInterface() || aClass.isRecord() || aClass.isEnum() || PsiUtil.isLocalOrAnonymousClass(aClass)) { return; } @@ -72,10 +72,11 @@ public final class ExplicitToImplicitClassMigrationInspection extends AbstractBa if (aClass.getContainingClass() != null) { return; } - PsiJavaFile file = (PsiJavaFile)aClass.getContainingFile(); - boolean underRoot = file.getPackageStatement() == null; + PsiFile file = aClass.getContainingFile(); + if (!(file instanceof PsiJavaFile javaFile)) return; + boolean underRoot = javaFile.getPackageStatement() == null; - if (file.getClasses().length != 1) { + if (javaFile.getClasses().length != 1) { return; }