mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
Fixes according to review IDEA-CR-43084
This commit is contained in:
committed by
Tagir Valeev
parent
6c3b4d8db3
commit
a3b4e36288
+5
-11
@@ -6,18 +6,19 @@ import com.intellij.openapi.project.Project;
|
||||
import com.intellij.openapi.util.text.StringUtil;
|
||||
import com.intellij.psi.*;
|
||||
import com.intellij.psi.util.PsiUtil;
|
||||
import com.intellij.util.containers.ContainerUtil;
|
||||
import com.siyeh.InspectionGadgetsBundle;
|
||||
import com.siyeh.ig.BaseInspection;
|
||||
import com.siyeh.ig.BaseInspectionVisitor;
|
||||
import com.siyeh.ig.InspectionGadgetsFix;
|
||||
import com.siyeh.ig.PsiReplacementUtil;
|
||||
import com.siyeh.ig.psiutils.ExpressionUtils;
|
||||
import org.jetbrains.annotations.Nls;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
import java.util.stream.Collectors;
|
||||
import java.util.stream.Stream;
|
||||
|
||||
/**
|
||||
* @author okli
|
||||
@@ -101,10 +102,7 @@ public class ArrayCanBeReplacedWithEnumValuesInspection extends BaseInspection {
|
||||
return;
|
||||
}
|
||||
|
||||
final List<String> enumValues = Stream.of(initClass.getFields())
|
||||
.filter(ev -> ev instanceof PsiEnumConstant)
|
||||
.map(ev -> ev.getName())
|
||||
.collect(Collectors.toList());
|
||||
final List<PsiEnumConstant> enumValues = ContainerUtil.filterIsInstance(Arrays.asList(initClass.getFields()), PsiEnumConstant.class);
|
||||
|
||||
final PsiExpression[] initializers = expression.getInitializers();
|
||||
if (enumValues.size() != initializers.length) {
|
||||
@@ -112,11 +110,7 @@ public class ArrayCanBeReplacedWithEnumValuesInspection extends BaseInspection {
|
||||
}
|
||||
|
||||
for (int i = 0; i < initializers.length; i++) {
|
||||
if (!(initializers[i] instanceof PsiReferenceExpression &&
|
||||
enumValues.get(i).equals(((PsiReferenceExpression)initializers[i]).getReferenceName()) &&
|
||||
initExprType.equals(initializers[i].getType()))) {
|
||||
return;
|
||||
}
|
||||
if (!ExpressionUtils.isReferenceTo(initializers[i], enumValues.get(i))) return;
|
||||
}
|
||||
|
||||
final PsiElement parent = expression.getParent();
|
||||
|
||||
+1
@@ -2,5 +2,6 @@
|
||||
<html>
|
||||
<body>
|
||||
Reports arrays of enum constants which may be replaced with <code>EnumType.values()</code>.
|
||||
<p><small>New in 2019.1</small></p>
|
||||
</body>
|
||||
</html>
|
||||
+1
-1
@@ -8,4 +8,4 @@ class ErrorInMultiDArray {
|
||||
|
||||
public enum TestEnum {
|
||||
ONE, TWO, THREE;
|
||||
}
|
||||
}}
|
||||
+9
@@ -0,0 +1,9 @@
|
||||
class Parentheses {
|
||||
void test() {
|
||||
X[] constants = X.values();
|
||||
}
|
||||
|
||||
enum X {
|
||||
A, B, C
|
||||
}
|
||||
}
|
||||
+9
@@ -0,0 +1,9 @@
|
||||
class Parentheses {
|
||||
void test() {
|
||||
X[] constants = {(<caret>X.A), (X.B), (X.C)};
|
||||
}
|
||||
|
||||
enum X {
|
||||
A, B, C
|
||||
}
|
||||
}
|
||||
+2
@@ -27,6 +27,8 @@ public class ArrayCanBeReplacedWithEnumValuesFixTest extends IGQuickFixesTestCas
|
||||
public void testFooInit() {assertQuickfixNotAvailable();}
|
||||
|
||||
public void testOuterEnumUse() {doTest("TestEnum");}
|
||||
|
||||
public void testParentheses() {doTest("X");}
|
||||
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user