mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
dfa: treat different constants with same values as same (IDEA-121837)
This commit is contained in:
+2
-3
@@ -89,11 +89,10 @@ public class DfaConstValue extends DfaValue {
|
||||
if (TypeConversionUtil.isNumericType(type) && !TypeConversionUtil.isFloatOrDoubleType(type)) {
|
||||
value = TypeConversionUtil.computeCastTo(value, PsiType.LONG);
|
||||
}
|
||||
Object key = constant != null ? constant : value;
|
||||
DfaConstValue instance = myValues.get(key);
|
||||
DfaConstValue instance = myValues.get(value);
|
||||
if (instance == null) {
|
||||
instance = new DfaConstValue(value, myFactory, constant);
|
||||
myValues.put(key, instance);
|
||||
myValues.put(value, instance);
|
||||
}
|
||||
|
||||
return instance;
|
||||
|
||||
@@ -0,0 +1,38 @@
|
||||
import org.jetbrains.annotations.Contract;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
|
||||
class Doo {
|
||||
|
||||
static final int TYPE_1 = 20;
|
||||
static final int TYPE_2 = 20;
|
||||
|
||||
public static void failedSecondCondition(int type) {
|
||||
if(type != TYPE_1) {
|
||||
return;
|
||||
}
|
||||
|
||||
if(<warning descr="Condition 'type != TYPE_2' is always 'false'">type != TYPE_2</warning>) {
|
||||
System.out.println();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
class Doo2 {
|
||||
|
||||
static final int TYPE_1 = 200;
|
||||
static final int TYPE_2 = 200;
|
||||
|
||||
public static void failedSecondCondition(int type) {
|
||||
if(type != TYPE_1) {
|
||||
return;
|
||||
}
|
||||
|
||||
if(<warning descr="Condition 'type != TYPE_2' is always 'false'">type != TYPE_2</warning>) {
|
||||
System.out.println();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
@@ -309,6 +309,8 @@ public class DataFlowInspectionTest extends LightCodeInsightFixtureTestCase {
|
||||
public void testUnusedCallDoesNotMakeUnknown() { doTest(); }
|
||||
public void testGettersAndPureNoFlushing() { doTest(); }
|
||||
|
||||
public void testSameComparisonTwice() { doTest(); }
|
||||
|
||||
public void testParametersAreNonnullByDefault() {
|
||||
myFixture.addClass("package javax.annotation; public @interface ParametersAreNonnullByDefault {}");
|
||||
myFixture.addClass("package javax.annotation; public @interface ParametersAreNullableByDefault {}");
|
||||
|
||||
Reference in New Issue
Block a user