mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
IG: fix false negative with switch expression (IDEA-203709)
This commit is contained in:
+6
@@ -19,4 +19,10 @@ class BigDecimalEquals {
|
||||
System.out.println("equals");
|
||||
}
|
||||
}
|
||||
|
||||
boolean test(int x, BigDecimal d1, BigDecimal d2) {
|
||||
return switch(x) {
|
||||
default -> d1.compareTo(d2) == 0;
|
||||
};
|
||||
}
|
||||
}
|
||||
|
||||
+6
@@ -19,4 +19,10 @@ class BigDecimalEquals {
|
||||
System.out.println("equals");
|
||||
}
|
||||
}
|
||||
|
||||
boolean test(int x, BigDecimal d1, BigDecimal d2) {
|
||||
return switch(x) {
|
||||
default -> d1.equals(d2);
|
||||
};
|
||||
}
|
||||
}
|
||||
|
||||
+1
-4
@@ -19,9 +19,7 @@ import com.intellij.codeInsight.Nullability;
|
||||
import com.intellij.codeInspection.ProblemDescriptor;
|
||||
import com.intellij.codeInspection.dataFlow.NullabilityUtil;
|
||||
import com.intellij.openapi.project.Project;
|
||||
import com.intellij.psi.PsiElement;
|
||||
import com.intellij.psi.PsiExpression;
|
||||
import com.intellij.psi.PsiExpressionStatement;
|
||||
import com.intellij.psi.PsiMethodCallExpression;
|
||||
import com.intellij.psi.util.PsiTreeUtil;
|
||||
import com.siyeh.InspectionGadgetsBundle;
|
||||
@@ -93,8 +91,7 @@ public class BigDecimalEqualsInspection extends BaseInspection {
|
||||
PsiExpression right = check.getRight();
|
||||
if (!ExpressionUtils.hasType(left, "java.math.BigDecimal")) return;
|
||||
if (!ExpressionUtils.hasType(right, "java.math.BigDecimal")) return;
|
||||
final PsiElement context = expression.getParent();
|
||||
if (context instanceof PsiExpressionStatement) {
|
||||
if (ExpressionUtils.isVoidContext(expression)) {
|
||||
//cheesy, but necessary, because otherwise the quickfix will
|
||||
// produce uncompilable code (out of merely incorrect code).
|
||||
return;
|
||||
|
||||
Reference in New Issue
Block a user