Skip to content

Commit 8269287

Browse files
committed
Java: Add some test cases.
1 parent d82fee1 commit 8269287

File tree

2 files changed

+43
-1
lines changed

2 files changed

+43
-1
lines changed

java/ql/test/library-tests/dataflow/records/A.java

Lines changed: 38 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
public class A {
22
record Pair(Object x, Object y) { }
33

4-
Object source() { return null; }
4+
static Object source() { return null; }
55

66
void sink(Object o) { }
77

@@ -25,4 +25,41 @@ void bar(Pair p1, Pair p2) {
2525
sink(p2x);
2626
sink(p2y);
2727
}
28+
29+
record RecWithGetter(Object f) {
30+
public Object f() {
31+
return this.f;
32+
}
33+
}
34+
35+
record RecWithWeirdGetter1(Object f) {
36+
public Object f() {
37+
return new Object();
38+
}
39+
}
40+
41+
record RecWithWeirdGetter2(Object f) {
42+
public Object f() {
43+
return source();
44+
}
45+
}
46+
47+
void testExplicitGetter1() {
48+
RecWithGetter r1 = new RecWithGetter(source());
49+
RecWithWeirdGetter1 r2 = new RecWithWeirdGetter1(source());
50+
RecWithWeirdGetter2 r3 = new RecWithWeirdGetter2(source());
51+
testExplicitGetter2(r1, r2, r3);
52+
}
53+
54+
void testExplicitGetter2(RecWithGetter r1, RecWithWeirdGetter1 r2, RecWithWeirdGetter2 r3) {
55+
sink(r1.f);
56+
sink(r2.f);
57+
sink(r3.f);
58+
Object r1f = r1.f();
59+
Object r2f = r2.f();
60+
Object r3f = r3.f();
61+
sink(r1f);
62+
sink(r2f);
63+
sink(r3f);
64+
}
2865
}

java/ql/test/library-tests/dataflow/records/test.expected

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,3 +2,8 @@
22
| A.java:9:24:9:31 | source(...) | A.java:23:10:23:12 | p1x |
33
| A.java:10:38:10:45 | source(...) | A.java:18:10:18:13 | p2.y |
44
| A.java:10:38:10:45 | source(...) | A.java:26:10:26:12 | p2y |
5+
| A.java:43:14:43:21 | source(...) | A.java:63:10:63:12 | r3f |
6+
| A.java:48:42:48:49 | source(...) | A.java:55:10:55:13 | r1.f |
7+
| A.java:48:42:48:49 | source(...) | A.java:61:10:61:12 | r1f |
8+
| A.java:49:54:49:61 | source(...) | A.java:56:10:56:13 | r2.f |
9+
| A.java:50:54:50:61 | source(...) | A.java:57:10:57:13 | r3.f |

0 commit comments

Comments
 (0)