[java] IJ-CR-167924 IDEA-371865 Inspection to convert 'System.out'<->'IO'

GitOrigin-RevId: 810b99e29ae3b425287263935f242136fdba71c4
This commit is contained in:
Mikhail Pyltsin
2025-07-08 22:10:37 +00:00
committed by intellij-monorepo-bot
parent 4cb2980dea
commit de315fe676
@@ -17,6 +17,8 @@ import org.jetbrains.annotations.Nullable;
import java.util.Set;
import static com.intellij.psi.CommonClassNames.JAVA_LANG_IO;
public final class MigrateToJavaLangIoInspection extends AbstractBaseJavaLocalInspectionTool {
public boolean processImplicitClasses = true;
@@ -125,9 +127,23 @@ public final class MigrateToJavaLangIoInspection extends AbstractBaseJavaLocalIn
static boolean isSystemOutPrintln(@NotNull PsiMethodCallExpression expression) {
if (!PRINT_STREAM_PRINT.test(expression)) return false;
if (!isSystemOutCall(expression)) return false;
return callIOAndSystemIdentical(expression.getArgumentList());
}
private static boolean isSystemOutCall(@NotNull PsiMethodCallExpression expression) {
PsiReferenceExpression methodExpression = expression.getMethodExpression();
PsiExpression qualifier = methodExpression.getQualifierExpression();
if (!(qualifier instanceof PsiReferenceExpression ref)) return false;
PsiElement resolved = ref.resolve();
if (!(resolved instanceof PsiField field)) return false;
if (!field.getName().equals("out")) return false;
PsiClass containingClass = field.getContainingClass();
if (containingClass == null) return false;
if (!CommonClassNames.JAVA_LANG_SYSTEM.equals(containingClass.getQualifiedName())) return false;
return true;
}
static boolean callIOAndSystemIdentical(@NotNull PsiExpressionList list) {
PsiExpression[] expressions = list.getExpressions();
if (expressions.length == 0) return true;