mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
[java] IJ-CR-167924 IDEA-371865 Inspection to convert 'System.out'<->'IO'
GitOrigin-RevId: 810b99e29ae3b425287263935f242136fdba71c4
This commit is contained in:
committed by
intellij-monorepo-bot
parent
4cb2980dea
commit
de315fe676
+16
@@ -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;
|
||||
|
||||
Reference in New Issue
Block a user