File tree Expand file tree Collapse file tree 2 files changed +43
-1
lines changed
java/ql/test/library-tests/dataflow/records Expand file tree Collapse file tree 2 files changed +43
-1
lines changed Original file line number Diff line number Diff line change 11public 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}
Original file line number Diff line number Diff line change 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 |
You can’t perform that action at this time.
0 commit comments