mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
Java: introduce PsiArrayInitializerExpression.isEmpty() as well (IJ-CR-176760)
GitOrigin-RevId: 2f0757929d780ff01930cc8001001daf59ec4500
This commit is contained in:
committed by
intellij-monorepo-bot
parent
5db7b62f2e
commit
1143fea0b7
+1
-1
@@ -177,7 +177,7 @@ public final class MismatchedArrayReadWriteInspection extends BaseInspection {
|
||||
return arrayInitializer == null || isZeroSizeArrayExpression(arrayInitializer);
|
||||
}
|
||||
if (initializer instanceof PsiArrayInitializerExpression arrayInitializerExpression) {
|
||||
return arrayInitializerExpression.getInitializerCount() == 0;
|
||||
return arrayInitializerExpression.isEmpty();
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
@@ -223,7 +223,7 @@ public final class CollectionUtils {
|
||||
public static boolean isEmptyArray(PsiVariable variable) {
|
||||
final PsiExpression initializer = variable.getInitializer();
|
||||
return initializer instanceof PsiArrayInitializerExpression arrayInitializerExpression
|
||||
? arrayInitializerExpression.getInitializerCount() == 0
|
||||
? arrayInitializerExpression.isEmpty()
|
||||
: ConstructionUtils.isEmptyArrayInitializer(initializer);
|
||||
}
|
||||
|
||||
|
||||
@@ -201,7 +201,7 @@ public final class ConstructionUtils {
|
||||
final PsiExpression[] dimensions = newExpression.getArrayDimensions();
|
||||
if (dimensions.length == 0) {
|
||||
final PsiArrayInitializerExpression arrayInitializer = newExpression.getArrayInitializer();
|
||||
return arrayInitializer != null && arrayInitializer.getInitializerCount() == 0;
|
||||
return arrayInitializer != null && arrayInitializer.isEmpty();
|
||||
}
|
||||
for (PsiExpression dimension : dimensions) {
|
||||
if (!ExpressionUtils.isZero(dimension)) return false;
|
||||
|
||||
@@ -72,7 +72,7 @@ public final class ZeroLengthArrayInitializationInspection extends BaseInspectio
|
||||
@Override
|
||||
public void visitArrayInitializerExpression(@NotNull PsiArrayInitializerExpression expression) {
|
||||
super.visitArrayInitializerExpression(expression);
|
||||
if (expression.getInitializerCount() > 0) {
|
||||
if (!expression.isEmpty()) {
|
||||
return;
|
||||
}
|
||||
if (expression.getParent() instanceof PsiNewExpression) {
|
||||
|
||||
@@ -22,4 +22,11 @@ public interface PsiArrayInitializerExpression extends PsiExpression {
|
||||
default int getInitializerCount() {
|
||||
return getInitializers().length;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return {@code true} if this array initializer expression contains no expressions
|
||||
*/
|
||||
default boolean isEmpty() {
|
||||
return getInitializerCount() == 0;
|
||||
}
|
||||
}
|
||||
|
||||
+5
@@ -27,6 +27,11 @@ public class PsiArrayInitializerExpressionImpl extends ExpressionPsiElement impl
|
||||
return countChildren(ElementType.EXPRESSION_BIT_SET);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isEmpty() {
|
||||
return findChildByType(ElementType.EXPRESSION_BIT_SET) == null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public PsiType getType(){
|
||||
if (getTreeParent() instanceof PsiNewExpression){
|
||||
|
||||
+2
-2
@@ -1057,7 +1057,7 @@ public class JavaMatchingVisitor extends JavaElementVisitor {
|
||||
if (!myMatchingVisitor.setResult(myMatchingVisitor.matchSons(initializer1, initializer2))) return;
|
||||
}
|
||||
else if (initializer2 != null) {
|
||||
myMatchingVisitor.setResult(areZeroLiterals(patternExpression.getArrayDimensions()) && initializer2.getInitializerCount() == 0);
|
||||
myMatchingVisitor.setResult(areZeroLiterals(patternExpression.getArrayDimensions()) && initializer2.isEmpty());
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -1645,7 +1645,7 @@ public class JavaMatchingVisitor extends JavaElementVisitor {
|
||||
myMatchingVisitor.setResult(myMatchingVisitor.matchSons(initializer, other));
|
||||
}
|
||||
else {
|
||||
myMatchingVisitor.setResult(((PsiArrayInitializerExpression)other).getInitializerCount() == 0);
|
||||
myMatchingVisitor.setResult(((PsiArrayInitializerExpression)other).isEmpty());
|
||||
}
|
||||
}
|
||||
return;
|
||||
|
||||
Reference in New Issue
Block a user