Skip to content

Commit a0f4960

Browse files
tamasvajksmowton
authored andcommitted
Add test case for extension function called from java
1 parent ccaafd7 commit a0f4960

File tree

5 files changed

+197
-0
lines changed

5 files changed

+197
-0
lines changed
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
class A {
2+
void method() {
3+
ExtensionsKt.someFun(new SomeClass(), "");
4+
}
5+
}
Lines changed: 158 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,158 @@
1+
[INVALID_KEY_SET] predicate params(@param id, @type typeid, int pos, @callable parentid, @param sourceid): The key set {parentid, pos} does not functionally determine all fields.
2+
Here is a pair of tuples that agree on the key set but differ at index 0:
3+
Tuple 1 in row 2: (87,42,0,44,87)
4+
Tuple 2 in row 4: (90,42,0,44,90)
5+
Relevant element: Tuple 1: id=87
6+
Full ID for 87: @"params;(44);0". The ID may expand to @"params;{@"callable;{@"class;ExtensionsKt"}.someFun({@"class;SomeClass"},{@"class;java.lang.String"}){@"type;void"}"};0"
7+
Relevant element: Tuple 2: id=90
8+
Full ID for 90: @"params;(44);-1". The ID may expand to @"params;{@"callable;{@"class;ExtensionsKt"}.someFun({@"class;SomeClass"},{@"class;java.lang.String"}){@"type;void"}"};-1"
9+
Relevant element: typeid=42
10+
Full ID for 42: @"class;SomeClass"
11+
Relevant element: parentid=44
12+
Full ID for 44: @"callable;(40).someFun((42),(43))(16)". The ID may expand to @"callable;{@"class;ExtensionsKt"}.someFun({@"class;SomeClass"},{@"class;java.lang.String"}){@"type;void"}"
13+
Relevant element: Tuple 1: sourceid=87
14+
Full ID for 87: @"params;(44);0". The ID may expand to @"params;{@"callable;{@"class;ExtensionsKt"}.someFun({@"class;SomeClass"},{@"class;java.lang.String"}){@"type;void"}"};0"
15+
Relevant element: Tuple 2: sourceid=90
16+
Full ID for 90: @"params;(44);-1". The ID may expand to @"params;{@"callable;{@"class;ExtensionsKt"}.someFun({@"class;SomeClass"},{@"class;java.lang.String"}){@"type;void"}"};-1"
17+
[INVALID_KEY_SET] predicate params(@param id, @type typeid, int pos, @callable parentid, @param sourceid): The key set {parentid, pos} does not functionally determine all fields.
18+
Here is a pair of tuples that agree on the key set but differ at index 0:
19+
Tuple 1 in row 3: (87,43,1,44,87)
20+
Tuple 2 in row 31: (329,43,1,44,329)
21+
Relevant element: Tuple 1: id=87
22+
Full ID for 87: @"params;(44);0". The ID may expand to @"params;{@"callable;{@"class;ExtensionsKt"}.someFun({@"class;SomeClass"},{@"class;java.lang.String"}){@"type;void"}"};0"
23+
Relevant element: Tuple 2: id=329
24+
Full ID for 329: @"params;(44);1". The ID may expand to @"params;{@"callable;{@"class;ExtensionsKt"}.someFun({@"class;SomeClass"},{@"class;java.lang.String"}){@"type;void"}"};1"
25+
Relevant element: typeid=43
26+
Full ID for 43: @"class;java.lang.String"
27+
Relevant element: parentid=44
28+
Full ID for 44: @"callable;(40).someFun((42),(43))(16)". The ID may expand to @"callable;{@"class;ExtensionsKt"}.someFun({@"class;SomeClass"},{@"class;java.lang.String"}){@"type;void"}"
29+
Relevant element: Tuple 1: sourceid=87
30+
Full ID for 87: @"params;(44);0". The ID may expand to @"params;{@"callable;{@"class;ExtensionsKt"}.someFun({@"class;SomeClass"},{@"class;java.lang.String"}){@"type;void"}"};0"
31+
Relevant element: Tuple 2: sourceid=329
32+
Full ID for 329: @"params;(44);1". The ID may expand to @"params;{@"callable;{@"class;ExtensionsKt"}.someFun({@"class;SomeClass"},{@"class;java.lang.String"}){@"type;void"}"};1"
33+
[INVALID_KEY_SET] predicate params(@param id, @type typeid, int pos, @callable parentid, @param sourceid): The key set {parentid, pos} does not functionally determine all fields.
34+
Here is a pair of tuples that agree on the key set but differ at index 0:
35+
Tuple 1 in row 6: (99,72,0,97,99)
36+
Tuple 2 in row 7: (102,72,0,97,102)
37+
Relevant element: Tuple 1: id=99
38+
Full ID for 99: @"params;(97);0". The ID may expand to @"params;{@"callable;{@"class;ExtensionsKt"}.anotherFun({@"class;AnotherClass"},{@"class;java.lang.String"}){@"type;void"}"};0"
39+
Relevant element: Tuple 2: id=102
40+
Full ID for 102: @"params;(97);-1". The ID may expand to @"params;{@"callable;{@"class;ExtensionsKt"}.anotherFun({@"class;AnotherClass"},{@"class;java.lang.String"}){@"type;void"}"};-1"
41+
Relevant element: typeid=72
42+
Full ID for 72: @"class;AnotherClass"
43+
Relevant element: parentid=97
44+
Full ID for 97: @"callable;(40).anotherFun((72),(43))(16)". The ID may expand to @"callable;{@"class;ExtensionsKt"}.anotherFun({@"class;AnotherClass"},{@"class;java.lang.String"}){@"type;void"}"
45+
Relevant element: Tuple 1: sourceid=99
46+
Full ID for 99: @"params;(97);0". The ID may expand to @"params;{@"callable;{@"class;ExtensionsKt"}.anotherFun({@"class;AnotherClass"},{@"class;java.lang.String"}){@"type;void"}"};0"
47+
Relevant element: Tuple 2: sourceid=102
48+
Full ID for 102: @"params;(97);-1". The ID may expand to @"params;{@"callable;{@"class;ExtensionsKt"}.anotherFun({@"class;AnotherClass"},{@"class;java.lang.String"}){@"type;void"}"};-1"
49+
[INVALID_KEY_SET] predicate params(@param id, @type typeid, int pos, @callable parentid, @param sourceid): The key set {parentid, pos} does not functionally determine all fields.
50+
Here is a pair of tuples that agree on the key set but differ at index 0:
51+
Tuple 1 in row 5: (99,43,1,97,99)
52+
Tuple 2 in row 30: (326,43,1,97,326)
53+
Relevant element: Tuple 1: id=99
54+
Full ID for 99: @"params;(97);0". The ID may expand to @"params;{@"callable;{@"class;ExtensionsKt"}.anotherFun({@"class;AnotherClass"},{@"class;java.lang.String"}){@"type;void"}"};0"
55+
Relevant element: Tuple 2: id=326
56+
Full ID for 326: @"params;(97);1". The ID may expand to @"params;{@"callable;{@"class;ExtensionsKt"}.anotherFun({@"class;AnotherClass"},{@"class;java.lang.String"}){@"type;void"}"};1"
57+
Relevant element: typeid=43
58+
Full ID for 43: @"class;java.lang.String"
59+
Relevant element: parentid=97
60+
Full ID for 97: @"callable;(40).anotherFun((72),(43))(16)". The ID may expand to @"callable;{@"class;ExtensionsKt"}.anotherFun({@"class;AnotherClass"},{@"class;java.lang.String"}){@"type;void"}"
61+
Relevant element: Tuple 1: sourceid=99
62+
Full ID for 99: @"params;(97);0". The ID may expand to @"params;{@"callable;{@"class;ExtensionsKt"}.anotherFun({@"class;AnotherClass"},{@"class;java.lang.String"}){@"type;void"}"};0"
63+
Relevant element: Tuple 2: sourceid=326
64+
Full ID for 326: @"params;(97);1". The ID may expand to @"params;{@"callable;{@"class;ExtensionsKt"}.anotherFun({@"class;AnotherClass"},{@"class;java.lang.String"}){@"type;void"}"};1"
65+
[INVALID_KEY_SET] predicate params(@param id, @type typeid, int pos, @callable parentid, @param sourceid): The key set {parentid, pos} does not functionally determine all fields.
66+
Here is a pair of tuples that agree on the key set but differ at index 0:
67+
Tuple 1 in row 8: (110,42,0,108,110)
68+
Tuple 2 in row 10: (113,42,0,108,113)
69+
Relevant element: Tuple 1: id=110
70+
Full ID for 110: @"params;(108);0". The ID may expand to @"params;{@"callable;{@"class;ExtensionsKt"}.bothFun({@"class;SomeClass"},{@"class;java.lang.String"}){@"type;void"}"};0"
71+
Relevant element: Tuple 2: id=113
72+
Full ID for 113: @"params;(108);-1". The ID may expand to @"params;{@"callable;{@"class;ExtensionsKt"}.bothFun({@"class;SomeClass"},{@"class;java.lang.String"}){@"type;void"}"};-1"
73+
Relevant element: typeid=42
74+
Full ID for 42: @"class;SomeClass"
75+
Relevant element: parentid=108
76+
Full ID for 108: @"callable;(40).bothFun((42),(43))(16)". The ID may expand to @"callable;{@"class;ExtensionsKt"}.bothFun({@"class;SomeClass"},{@"class;java.lang.String"}){@"type;void"}"
77+
Relevant element: Tuple 1: sourceid=110
78+
Full ID for 110: @"params;(108);0". The ID may expand to @"params;{@"callable;{@"class;ExtensionsKt"}.bothFun({@"class;SomeClass"},{@"class;java.lang.String"}){@"type;void"}"};0"
79+
Relevant element: Tuple 2: sourceid=113
80+
Full ID for 113: @"params;(108);-1". The ID may expand to @"params;{@"callable;{@"class;ExtensionsKt"}.bothFun({@"class;SomeClass"},{@"class;java.lang.String"}){@"type;void"}"};-1"
81+
[INVALID_KEY_SET] predicate params(@param id, @type typeid, int pos, @callable parentid, @param sourceid): More errors, not displayed. There are at least 14 pairs of tuples not satisfying the key dependency for a relation of size 10480
82+
[INVALID_KEY] predicate params(@param id, @type typeid, int pos, @callable parentid, @param sourceid): The key set {id} does not functionally determine all fields.
83+
Here is a pair of tuples that agree on the key set but differ at index 1:
84+
Tuple 1 in row 2: (87,42,0,44,87)
85+
Tuple 2 in row 3: (87,43,1,44,87)
86+
Relevant element: id=87
87+
Full ID for 87: @"params;(44);0". The ID may expand to @"params;{@"callable;{@"class;ExtensionsKt"}.someFun({@"class;SomeClass"},{@"class;java.lang.String"}){@"type;void"}"};0"
88+
Relevant element: Tuple 1: typeid=42
89+
Full ID for 42: @"class;SomeClass"
90+
Relevant element: Tuple 2: typeid=43
91+
Full ID for 43: @"class;java.lang.String"
92+
Relevant element: parentid=44
93+
Full ID for 44: @"callable;(40).someFun((42),(43))(16)". The ID may expand to @"callable;{@"class;ExtensionsKt"}.someFun({@"class;SomeClass"},{@"class;java.lang.String"}){@"type;void"}"
94+
Relevant element: sourceid=87
95+
Full ID for 87: @"params;(44);0". The ID may expand to @"params;{@"callable;{@"class;ExtensionsKt"}.someFun({@"class;SomeClass"},{@"class;java.lang.String"}){@"type;void"}"};0"
96+
[INVALID_KEY] predicate params(@param id, @type typeid, int pos, @callable parentid, @param sourceid): The key set {id} does not functionally determine all fields.
97+
Here is a pair of tuples that agree on the key set but differ at index 1:
98+
Tuple 1 in row 5: (99,43,1,97,99)
99+
Tuple 2 in row 6: (99,72,0,97,99)
100+
Relevant element: id=99
101+
Full ID for 99: @"params;(97);0". The ID may expand to @"params;{@"callable;{@"class;ExtensionsKt"}.anotherFun({@"class;AnotherClass"},{@"class;java.lang.String"}){@"type;void"}"};0"
102+
Relevant element: Tuple 1: typeid=43
103+
Full ID for 43: @"class;java.lang.String"
104+
Relevant element: Tuple 2: typeid=72
105+
Full ID for 72: @"class;AnotherClass"
106+
Relevant element: parentid=97
107+
Full ID for 97: @"callable;(40).anotherFun((72),(43))(16)". The ID may expand to @"callable;{@"class;ExtensionsKt"}.anotherFun({@"class;AnotherClass"},{@"class;java.lang.String"}){@"type;void"}"
108+
Relevant element: sourceid=99
109+
Full ID for 99: @"params;(97);0". The ID may expand to @"params;{@"callable;{@"class;ExtensionsKt"}.anotherFun({@"class;AnotherClass"},{@"class;java.lang.String"}){@"type;void"}"};0"
110+
[INVALID_KEY] predicate params(@param id, @type typeid, int pos, @callable parentid, @param sourceid): The key set {id} does not functionally determine all fields.
111+
Here is a pair of tuples that agree on the key set but differ at index 1:
112+
Tuple 1 in row 8: (110,42,0,108,110)
113+
Tuple 2 in row 9: (110,43,1,108,110)
114+
Relevant element: id=110
115+
Full ID for 110: @"params;(108);0". The ID may expand to @"params;{@"callable;{@"class;ExtensionsKt"}.bothFun({@"class;SomeClass"},{@"class;java.lang.String"}){@"type;void"}"};0"
116+
Relevant element: Tuple 1: typeid=42
117+
Full ID for 42: @"class;SomeClass"
118+
Relevant element: Tuple 2: typeid=43
119+
Full ID for 43: @"class;java.lang.String"
120+
Relevant element: parentid=108
121+
Full ID for 108: @"callable;(40).bothFun((42),(43))(16)". The ID may expand to @"callable;{@"class;ExtensionsKt"}.bothFun({@"class;SomeClass"},{@"class;java.lang.String"}){@"type;void"}"
122+
Relevant element: sourceid=110
123+
Full ID for 110: @"params;(108);0". The ID may expand to @"params;{@"callable;{@"class;ExtensionsKt"}.bothFun({@"class;SomeClass"},{@"class;java.lang.String"}){@"type;void"}"};0"
124+
[INVALID_KEY] predicate params(@param id, @type typeid, int pos, @callable parentid, @param sourceid): The key set {id} does not functionally determine all fields.
125+
Here is a pair of tuples that agree on the key set but differ at index 1:
126+
Tuple 1 in row 11: (121,43,1,119,121)
127+
Tuple 2 in row 12: (121,72,0,119,121)
128+
Relevant element: id=121
129+
Full ID for 121: @"params;(119);0". The ID may expand to @"params;{@"callable;{@"class;ExtensionsKt"}.bothFun({@"class;AnotherClass"},{@"class;java.lang.String"}){@"type;void"}"};0"
130+
Relevant element: Tuple 1: typeid=43
131+
Full ID for 43: @"class;java.lang.String"
132+
Relevant element: Tuple 2: typeid=72
133+
Full ID for 72: @"class;AnotherClass"
134+
Relevant element: parentid=119
135+
Full ID for 119: @"callable;(40).bothFun((72),(43))(16)". The ID may expand to @"callable;{@"class;ExtensionsKt"}.bothFun({@"class;AnotherClass"},{@"class;java.lang.String"}){@"type;void"}"
136+
Relevant element: sourceid=121
137+
Full ID for 121: @"params;(119);0". The ID may expand to @"params;{@"callable;{@"class;ExtensionsKt"}.bothFun({@"class;AnotherClass"},{@"class;java.lang.String"}){@"type;void"}"};0"
138+
[INVALID_KEY] predicate params(@param id, @type typeid, int pos, @callable parentid, @param sourceid): The key set {id} does not functionally determine all fields.
139+
Here is a pair of tuples that agree on the key set but differ at index 1:
140+
Tuple 1 in row 14: (134,42,0,132,134)
141+
Tuple 2 in row 15: (134,130,1,132,134)
142+
Relevant element: Tuple 1: id=134
143+
Full ID for 134: @"params;(132);0". The ID may expand to @"params;{@"callable;{@"class;ExtensionsKt"}.bothFunDiffTypes({@"class;SomeClass"},{@"type;int"}){@"type;int"}"};0"
144+
Relevant element: Tuple 2: id=134
145+
Full ID for 134: @"params;(132);0". The ID may expand to @"params;{@"callable;{@"class;ExtensionsKt"}.bothFunDiffTypes({@"class;SomeClass"},{@"type;int"}){@"type;int"}"};0"
146+
Relevant element: Tuple 1: typeid=42
147+
Full ID for 42: @"class;SomeClass"
148+
Relevant element: Tuple 2: typeid=130
149+
Full ID for 130: @"type;int"
150+
Relevant element: Tuple 1: parentid=132
151+
Full ID for 132: @"callable;(40).bothFunDiffTypes((42),(130))(130)". The ID may expand to @"callable;{@"class;ExtensionsKt"}.bothFunDiffTypes({@"class;SomeClass"},{@"type;int"}){@"type;int"}"
152+
Relevant element: Tuple 2: parentid=132
153+
Full ID for 132: @"callable;(40).bothFunDiffTypes((42),(130))(130)". The ID may expand to @"callable;{@"class;ExtensionsKt"}.bothFunDiffTypes({@"class;SomeClass"},{@"type;int"}){@"type;int"}"
154+
Relevant element: Tuple 1: sourceid=134
155+
Full ID for 134: @"params;(132);0". The ID may expand to @"params;{@"callable;{@"class;ExtensionsKt"}.bothFunDiffTypes({@"class;SomeClass"},{@"type;int"}){@"type;int"}"};0"
156+
Relevant element: Tuple 2: sourceid=134
157+
Full ID for 134: @"params;(132);0". The ID may expand to @"params;{@"callable;{@"class;ExtensionsKt"}.bothFunDiffTypes({@"class;SomeClass"},{@"type;int"}){@"type;int"}"};0"
158+
[INVALID_KEY] predicate params(@param id, @type typeid, int pos, @callable parentid, @param sourceid): More errors, not displayed. There are at least 7 pairs of tuples not satisfying the key dependency for a relation of size 10480

java/ql/test/kotlin/library-tests/extensions/methodaccesses.expected

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
| A.java:3:9:3:49 | someFun(...) | A.java:3:9:3:20 | ExtensionsKt | A.java:3:30:3:44 | new SomeClass(...) |
2+
| A.java:3:9:3:49 | someFun(...) | A.java:3:9:3:20 | ExtensionsKt | A.java:3:47:3:48 | "" |
13
| extensions.kt:21:17:21:38 | someClassMethod(...) | extensions.kt:21:5:21:15 | new SomeClass(...) | extensions.kt:21:34:21:36 | foo |
24
| extensions.kt:22:17:22:30 | someFun(...) | extensions.kt:22:17:22:30 | ExtensionsKt | extensions.kt:22:5:22:15 | new SomeClass(...) |
35
| extensions.kt:22:17:22:30 | someFun(...) | extensions.kt:22:17:22:30 | ExtensionsKt | extensions.kt:22:26:22:28 | foo |

java/ql/test/kotlin/library-tests/extensions/methods.expected

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
| A.java:2:10:2:15 | method | file://:0:0:0:0 | void |
12
| extensions.kt:3:5:3:38 | someClassMethod | file://:0:0:0:0 | void |
23
| extensions.kt:6:5:6:41 | anotherClassMethod | file://:0:0:0:0 | void |
34
| extensions.kt:9:1:9:36 | someFun | file://:0:0:0:0 | void |

0 commit comments

Comments
 (0)