mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
[java-inspections] IDEA-316983 creation of a multidimensional array
GitOrigin-RevId: 916115330d65d198259b3908ead1e0b0ccf309f5
This commit is contained in:
committed by
intellij-monorepo-bot
parent
4b35adf956
commit
40348bbf27
@@ -0,0 +1,10 @@
|
||||
// "Replace loop with 'Arrays.fill()' method call" "false"
|
||||
package pack;
|
||||
|
||||
public class TableWrapper {
|
||||
|
||||
public static double[][] diag(final int n, final double value) {
|
||||
final double[][] test = new double[n][n];
|
||||
for (<caret>int i = 0; i < n; ++i) test[i][i] = value;
|
||||
return test;
|
||||
}}
|
||||
+21
-20
@@ -121,26 +121,27 @@ public abstract class IndexedContainer {
|
||||
public static IndexedContainer arrayContainerWithBound(@NotNull PsiArrayAccessExpression arrayAccessExpression,
|
||||
@NotNull PsiExpression bound) {
|
||||
PsiExpression arrayExpression = arrayAccessExpression.getArrayExpression();
|
||||
if (arrayExpression instanceof PsiReferenceExpression reference &&
|
||||
reference.resolve() instanceof PsiVariable arrayVariable) {
|
||||
PsiExpression initializer = arrayVariable.getInitializer();
|
||||
if (!(initializer instanceof PsiNewExpression newExpression)) {
|
||||
return null;
|
||||
}
|
||||
PsiExpression[] dimensions = newExpression.getArrayDimensions();
|
||||
if (dimensions.length != 1) {
|
||||
return null;
|
||||
}
|
||||
PsiExpression dimension = dimensions[0];
|
||||
PsiVariable dimensionVariable = ExpressionUtils.resolveVariable(dimension);
|
||||
PsiVariable boundVariable = ExpressionUtils.resolveVariable(bound);
|
||||
if (dimensionVariable == null || boundVariable == null || !dimensionVariable.isEquivalentTo(boundVariable)) {
|
||||
return null;
|
||||
}
|
||||
if ((VariableAccessUtils.variableIsAssigned(dimensionVariable)) ||
|
||||
(VariableAccessUtils.variableIsAssigned(arrayVariable))) {
|
||||
return null;
|
||||
}
|
||||
if (!(arrayExpression instanceof PsiReferenceExpression reference) ||
|
||||
!(reference.resolve() instanceof PsiVariable arrayVariable)) {
|
||||
return null;
|
||||
}
|
||||
PsiExpression initializer = arrayVariable.getInitializer();
|
||||
if (!(initializer instanceof PsiNewExpression newExpression)) {
|
||||
return null;
|
||||
}
|
||||
PsiExpression[] dimensions = newExpression.getArrayDimensions();
|
||||
if (dimensions.length != 1) {
|
||||
return null;
|
||||
}
|
||||
PsiExpression dimension = dimensions[0];
|
||||
PsiVariable dimensionVariable = ExpressionUtils.resolveVariable(dimension);
|
||||
PsiVariable boundVariable = ExpressionUtils.resolveVariable(bound);
|
||||
if (dimensionVariable == null || boundVariable == null || !dimensionVariable.isEquivalentTo(boundVariable)) {
|
||||
return null;
|
||||
}
|
||||
if ((VariableAccessUtils.variableIsAssigned(dimensionVariable)) ||
|
||||
(VariableAccessUtils.variableIsAssigned(arrayVariable))) {
|
||||
return null;
|
||||
}
|
||||
return new ArrayIndexedContainer(arrayExpression);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user