Files
openide/java/java-tests/testData/inspection/dataFlow/fixture/GetterVsDirectAccessObjectEquals.java
Tagir Valeev b488983f95 [java-dfa] IDEA-364300 Better contracts for Objects.equals and Arrays.equals
GitOrigin-RevId: 78742f689c964ca8784709ad6f63ee5071995a56
2024-12-05 15:06:42 +00:00

40 lines
1.1 KiB
Java

import java.util.Objects;
record Test2(String x, String y) {
static void test2(Test2 test2) {
if (Objects.equals(test2.getSomething2(), test2.y())) {
if(<warning descr="Condition 'Objects.equals(test2.x, test2.getSomething3())' is always 'true'">Objects.equals(test2.x, test2.getSomething3())</warning>) {
}
if (<warning descr="Condition 'Objects.equals(test2.getSomething(), test2.y)' is always 'true'">Objects.equals(test2.getSomething(), test2.y)</warning>) {
}
}
}
static void test(Test2 test2) {
if (test2.getSomething2().equals(test2.y())) {
if(<warning descr="Condition 'test2.x.equals(test2.getSomething3())' is always 'true'">test2.x.equals(test2.getSomething3())</warning>) { //it works
}
if (<warning descr="Condition 'test2.getSomething().equals(test2.y)' is always 'true'">test2.getSomething().equals(test2.y)</warning>) {
}
}
}
public String getSomething() {
return x;
}
public String getSomething3() {
return y;
}
public String getSomething2() {
return x;
}
}