mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-01-07 05:09:37 +07:00
AtomicConversionRule: use ExpressionUtils#getArrayFromLengthExpression
This commit is contained in:
@@ -27,8 +27,6 @@ import com.intellij.refactoring.typeMigration.TypeConversionDescriptor;
|
||||
import com.intellij.refactoring.typeMigration.TypeConversionDescriptorBase;
|
||||
import com.intellij.refactoring.typeMigration.TypeEvaluator;
|
||||
import com.intellij.refactoring.typeMigration.TypeMigrationLabeler;
|
||||
import com.intellij.util.ObjectUtils;
|
||||
import com.siyeh.HardcodedMethodConstants;
|
||||
import com.siyeh.ig.psiutils.ExpressionUtils;
|
||||
import com.siyeh.ig.psiutils.ParenthesesUtils;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
@@ -286,7 +284,7 @@ public class AtomicConversionRule extends TypeConversionRule {
|
||||
final PsiElement parent = context.getParent();
|
||||
final PsiElement parentParent = parent.getParent();
|
||||
|
||||
if (context instanceof PsiReferenceExpression && isReferenceToLengthField((PsiReferenceExpression)context)) {
|
||||
if (context instanceof PsiReferenceExpression && ExpressionUtils.getArrayFromLengthExpression((PsiReferenceExpression)context) != null) {
|
||||
return new TypeConversionDescriptor("$qualifier$.length", "$qualifier$.length()");
|
||||
}
|
||||
if (parent instanceof PsiAssignmentExpression) {
|
||||
@@ -442,14 +440,4 @@ public class AtomicConversionRule extends TypeConversionRule {
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
private static boolean isReferenceToLengthField(@NotNull PsiReferenceExpression refExpr) {
|
||||
if (!"length".equals(refExpr.getReferenceName())) {
|
||||
return false;
|
||||
}
|
||||
PsiClass aClass = JavaPsiFacade.getElementFactory(refExpr.getProject()).getArrayClass(PsiUtil.getLanguageLevel(refExpr));
|
||||
PsiField lengthField = ObjectUtils.notNull(aClass.findFieldByName(HardcodedMethodConstants.LENGTH, false));
|
||||
return refExpr.isReferenceTo(lengthField);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user