Skip to content

Commit aefd89e

Browse files
committed
Kotlin: Add compiler-generated info to methods test
1 parent 5fc294d commit aefd89e

File tree

5 files changed

+121
-21
lines changed

5 files changed

+121
-21
lines changed
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
data class DataClass(val x: Int, val y: String)

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

Lines changed: 86 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,92 @@
1212
| clinit.kt:3:1:3:24 | int | TypeAccess |
1313
| clinit.kt:3:1:3:24 | int | TypeAccess |
1414
| clinit.kt:3:24:3:24 | 0 | IntegerLiteral |
15+
| dataClass.kt:0:0:0:0 | 31 | IntegerLiteral |
16+
| dataClass.kt:0:0:0:0 | "..." | StringTemplateExpr |
17+
| dataClass.kt:0:0:0:0 | (...)... | CastExpr |
18+
| dataClass.kt:0:0:0:0 | ) | StringLiteral |
19+
| dataClass.kt:0:0:0:0 | , | StringLiteral |
20+
| dataClass.kt:0:0:0:0 | ... !is ... | NotInstanceOfExpr |
21+
| dataClass.kt:0:0:0:0 | ... (value not-equals) ... | ValueNEExpr |
22+
| dataClass.kt:0:0:0:0 | ... (value not-equals) ... | ValueNEExpr |
23+
| dataClass.kt:0:0:0:0 | ... == ... | EQExpr |
24+
| dataClass.kt:0:0:0:0 | ...=... | AssignExpr |
25+
| dataClass.kt:0:0:0:0 | DataClass | TypeAccess |
26+
| dataClass.kt:0:0:0:0 | DataClass | TypeAccess |
27+
| dataClass.kt:0:0:0:0 | DataClass | TypeAccess |
28+
| dataClass.kt:0:0:0:0 | DataClass | TypeAccess |
29+
| dataClass.kt:0:0:0:0 | DataClass( | StringLiteral |
30+
| dataClass.kt:0:0:0:0 | Object | TypeAccess |
31+
| dataClass.kt:0:0:0:0 | String | TypeAccess |
32+
| dataClass.kt:0:0:0:0 | String | TypeAccess |
33+
| dataClass.kt:0:0:0:0 | boolean | TypeAccess |
34+
| dataClass.kt:0:0:0:0 | false | BooleanLiteral |
35+
| dataClass.kt:0:0:0:0 | false | BooleanLiteral |
36+
| dataClass.kt:0:0:0:0 | false | BooleanLiteral |
37+
| dataClass.kt:0:0:0:0 | hashCode(...) | MethodAccess |
38+
| dataClass.kt:0:0:0:0 | hashCode(...) | MethodAccess |
39+
| dataClass.kt:0:0:0:0 | int | TypeAccess |
40+
| dataClass.kt:0:0:0:0 | int | TypeAccess |
41+
| dataClass.kt:0:0:0:0 | new DataClass(...) | ClassInstanceExpr |
42+
| dataClass.kt:0:0:0:0 | other | VarAccess |
43+
| dataClass.kt:0:0:0:0 | other | VarAccess |
44+
| dataClass.kt:0:0:0:0 | other | VarAccess |
45+
| dataClass.kt:0:0:0:0 | plus(...) | MethodAccess |
46+
| dataClass.kt:0:0:0:0 | result | LocalVariableDeclExpr |
47+
| dataClass.kt:0:0:0:0 | result | VarAccess |
48+
| dataClass.kt:0:0:0:0 | result | VarAccess |
49+
| dataClass.kt:0:0:0:0 | result | VarAccess |
50+
| dataClass.kt:0:0:0:0 | this | ThisAccess |
51+
| dataClass.kt:0:0:0:0 | this | ThisAccess |
52+
| dataClass.kt:0:0:0:0 | this | ThisAccess |
53+
| dataClass.kt:0:0:0:0 | this | ThisAccess |
54+
| dataClass.kt:0:0:0:0 | this | ThisAccess |
55+
| dataClass.kt:0:0:0:0 | this | ThisAccess |
56+
| dataClass.kt:0:0:0:0 | this | ThisAccess |
57+
| dataClass.kt:0:0:0:0 | this | ThisAccess |
58+
| dataClass.kt:0:0:0:0 | this | ThisAccess |
59+
| dataClass.kt:0:0:0:0 | this.x | VarAccess |
60+
| dataClass.kt:0:0:0:0 | this.x | VarAccess |
61+
| dataClass.kt:0:0:0:0 | this.x | VarAccess |
62+
| dataClass.kt:0:0:0:0 | this.x | VarAccess |
63+
| dataClass.kt:0:0:0:0 | this.y | VarAccess |
64+
| dataClass.kt:0:0:0:0 | this.y | VarAccess |
65+
| dataClass.kt:0:0:0:0 | this.y | VarAccess |
66+
| dataClass.kt:0:0:0:0 | this.y | VarAccess |
67+
| dataClass.kt:0:0:0:0 | times(...) | MethodAccess |
68+
| dataClass.kt:0:0:0:0 | tmp0_other_with_cast | LocalVariableDeclExpr |
69+
| dataClass.kt:0:0:0:0 | tmp0_other_with_cast | VarAccess |
70+
| dataClass.kt:0:0:0:0 | tmp0_other_with_cast | VarAccess |
71+
| dataClass.kt:0:0:0:0 | tmp0_other_with_cast.x | VarAccess |
72+
| dataClass.kt:0:0:0:0 | tmp0_other_with_cast.y | VarAccess |
73+
| dataClass.kt:0:0:0:0 | true | BooleanLiteral |
74+
| dataClass.kt:0:0:0:0 | true | BooleanLiteral |
75+
| dataClass.kt:0:0:0:0 | when ... | WhenExpr |
76+
| dataClass.kt:0:0:0:0 | when ... | WhenExpr |
77+
| dataClass.kt:0:0:0:0 | when ... | WhenExpr |
78+
| dataClass.kt:0:0:0:0 | when ... | WhenExpr |
79+
| dataClass.kt:0:0:0:0 | x | VarAccess |
80+
| dataClass.kt:0:0:0:0 | x= | StringLiteral |
81+
| dataClass.kt:0:0:0:0 | y | VarAccess |
82+
| dataClass.kt:0:0:0:0 | y= | StringLiteral |
83+
| dataClass.kt:1:22:1:31 | ...=... | KtInitializerAssignExpr |
84+
| dataClass.kt:1:22:1:31 | int | TypeAccess |
85+
| dataClass.kt:1:22:1:31 | int | TypeAccess |
86+
| dataClass.kt:1:22:1:31 | int | TypeAccess |
87+
| dataClass.kt:1:22:1:31 | int | TypeAccess |
88+
| dataClass.kt:1:22:1:31 | this | ThisAccess |
89+
| dataClass.kt:1:22:1:31 | this.x | VarAccess |
90+
| dataClass.kt:1:22:1:31 | x | VarAccess |
91+
| dataClass.kt:1:22:1:31 | x | VarAccess |
92+
| dataClass.kt:1:34:1:46 | ...=... | KtInitializerAssignExpr |
93+
| dataClass.kt:1:34:1:46 | String | TypeAccess |
94+
| dataClass.kt:1:34:1:46 | String | TypeAccess |
95+
| dataClass.kt:1:34:1:46 | String | TypeAccess |
96+
| dataClass.kt:1:34:1:46 | String | TypeAccess |
97+
| dataClass.kt:1:34:1:46 | this | ThisAccess |
98+
| dataClass.kt:1:34:1:46 | this.y | VarAccess |
99+
| dataClass.kt:1:34:1:46 | y | VarAccess |
100+
| dataClass.kt:1:34:1:46 | y | VarAccess |
15101
| methods2.kt:4:1:5:1 | Unit | TypeAccess |
16102
| methods2.kt:4:26:4:31 | int | TypeAccess |
17103
| methods2.kt:4:34:4:39 | int | TypeAccess |

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

Lines changed: 28 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -1,24 +1,33 @@
11
methods
2-
| clinit.kt:0:0:0:0 | ClinitKt | clinit.kt:0:0:0:0 | <clinit> | <clinit>() | |
3-
| clinit.kt:0:0:0:0 | ClinitKt | clinit.kt:3:1:3:24 | getTopLevelInt | getTopLevelInt() | public, static |
4-
| clinit.kt:0:0:0:0 | ClinitKt | clinit.kt:3:1:3:24 | setTopLevelInt | setTopLevelInt(int) | public, static |
5-
| methods2.kt:0:0:0:0 | Methods2Kt | methods2.kt:4:1:5:1 | fooBarTopLevelMethod | fooBarTopLevelMethod(int,int) | public, static |
6-
| methods2.kt:7:1:10:1 | Class2 | methods2.kt:8:5:9:5 | fooBarClassMethod | fooBarClassMethod(int,int) | public |
7-
| methods3.kt:0:0:0:0 | Methods3Kt | methods3.kt:3:1:3:42 | fooBarTopLevelMethodExt | fooBarTopLevelMethodExt(int,int) | public, static |
8-
| methods3.kt:5:1:7:1 | Class3 | methods3.kt:6:5:6:46 | fooBarTopLevelMethodExt | fooBarTopLevelMethodExt(int,int) | public |
9-
| methods4.kt:5:3:9:3 | InsideNestedTest | methods4.kt:7:5:7:34 | m | m(foo.bar.NestedTest.InsideNestedTest) | public |
10-
| methods5.kt:0:0:0:0 | Methods5Kt | methods5.kt:3:1:11:1 | x | x() | public, static |
11-
| methods5.kt:5:3:5:27 | | methods5.kt:5:3:5:27 | a | a(int) | public |
12-
| methods5.kt:9:3:9:32 | | methods5.kt:9:3:9:32 | f1 | f1(foo.bar.C1,int) | public |
13-
| methods.kt:0:0:0:0 | MethodsKt | methods.kt:2:1:3:1 | topLevelMethod | topLevelMethod(int,int) | public, static |
14-
| methods.kt:5:1:19:1 | Class | methods.kt:6:5:7:5 | classMethod | classMethod(int,int) | public |
15-
| methods.kt:5:1:19:1 | Class | methods.kt:9:5:12:5 | anotherClassMethod | anotherClassMethod(int,int) | public |
16-
| methods.kt:5:1:19:1 | Class | methods.kt:14:12:14:29 | publicFun | publicFun() | public |
17-
| methods.kt:5:1:19:1 | Class | methods.kt:15:15:15:35 | protectedFun | protectedFun() | protected |
18-
| methods.kt:5:1:19:1 | Class | methods.kt:16:13:16:31 | privateFun | privateFun() | private |
19-
| methods.kt:5:1:19:1 | Class | methods.kt:17:14:17:33 | internalFun | internalFun() | internal |
20-
| methods.kt:5:1:19:1 | Class | methods.kt:18:5:18:36 | noExplicitVisibilityFun | noExplicitVisibilityFun() | public |
2+
| clinit.kt:0:0:0:0 | ClinitKt | clinit.kt:0:0:0:0 | <clinit> | <clinit>() | | |
3+
| clinit.kt:0:0:0:0 | ClinitKt | clinit.kt:3:1:3:24 | getTopLevelInt | getTopLevelInt() | public, static | |
4+
| clinit.kt:0:0:0:0 | ClinitKt | clinit.kt:3:1:3:24 | setTopLevelInt | setTopLevelInt(int) | public, static | |
5+
| dataClass.kt:1:1:1:47 | DataClass | dataClass.kt:0:0:0:0 | component1 | component1() | public | Compiler generated |
6+
| dataClass.kt:1:1:1:47 | DataClass | dataClass.kt:0:0:0:0 | component2 | component2() | public | Compiler generated |
7+
| dataClass.kt:1:1:1:47 | DataClass | dataClass.kt:0:0:0:0 | copy | copy(int,java.lang.String) | public | Compiler generated |
8+
| dataClass.kt:1:1:1:47 | DataClass | dataClass.kt:0:0:0:0 | equals | equals(java.lang.Object) | override, public | Compiler generated |
9+
| dataClass.kt:1:1:1:47 | DataClass | dataClass.kt:0:0:0:0 | hashCode | hashCode() | override, public | Compiler generated |
10+
| dataClass.kt:1:1:1:47 | DataClass | dataClass.kt:0:0:0:0 | toString | toString() | override, public | Compiler generated |
11+
| dataClass.kt:1:1:1:47 | DataClass | dataClass.kt:1:22:1:31 | getX | getX() | public | |
12+
| dataClass.kt:1:1:1:47 | DataClass | dataClass.kt:1:34:1:46 | getY | getY() | public | |
13+
| methods2.kt:0:0:0:0 | Methods2Kt | methods2.kt:4:1:5:1 | fooBarTopLevelMethod | fooBarTopLevelMethod(int,int) | public, static | |
14+
| methods2.kt:7:1:10:1 | Class2 | methods2.kt:8:5:9:5 | fooBarClassMethod | fooBarClassMethod(int,int) | public | |
15+
| methods3.kt:0:0:0:0 | Methods3Kt | methods3.kt:3:1:3:42 | fooBarTopLevelMethodExt | fooBarTopLevelMethodExt(int,int) | public, static | |
16+
| methods3.kt:5:1:7:1 | Class3 | methods3.kt:6:5:6:46 | fooBarTopLevelMethodExt | fooBarTopLevelMethodExt(int,int) | public | |
17+
| methods4.kt:5:3:9:3 | InsideNestedTest | methods4.kt:7:5:7:34 | m | m(foo.bar.NestedTest.InsideNestedTest) | public | |
18+
| methods5.kt:0:0:0:0 | Methods5Kt | methods5.kt:3:1:11:1 | x | x() | public, static | |
19+
| methods5.kt:5:3:5:27 | | methods5.kt:5:3:5:27 | a | a(int) | public | |
20+
| methods5.kt:9:3:9:32 | | methods5.kt:9:3:9:32 | f1 | f1(foo.bar.C1,int) | public | |
21+
| methods.kt:0:0:0:0 | MethodsKt | methods.kt:2:1:3:1 | topLevelMethod | topLevelMethod(int,int) | public, static | |
22+
| methods.kt:5:1:19:1 | Class | methods.kt:6:5:7:5 | classMethod | classMethod(int,int) | public | |
23+
| methods.kt:5:1:19:1 | Class | methods.kt:9:5:12:5 | anotherClassMethod | anotherClassMethod(int,int) | public | |
24+
| methods.kt:5:1:19:1 | Class | methods.kt:14:12:14:29 | publicFun | publicFun() | public | |
25+
| methods.kt:5:1:19:1 | Class | methods.kt:15:15:15:35 | protectedFun | protectedFun() | protected | |
26+
| methods.kt:5:1:19:1 | Class | methods.kt:16:13:16:31 | privateFun | privateFun() | private | |
27+
| methods.kt:5:1:19:1 | Class | methods.kt:17:14:17:33 | internalFun | internalFun() | internal | |
28+
| methods.kt:5:1:19:1 | Class | methods.kt:18:5:18:36 | noExplicitVisibilityFun | noExplicitVisibilityFun() | public | |
2129
constructors
30+
| dataClass.kt:1:1:1:47 | DataClass | dataClass.kt:1:6:1:47 | DataClass | DataClass(int,java.lang.String) |
2231
| methods2.kt:7:1:10:1 | Class2 | methods2.kt:7:1:10:1 | Class2 | Class2() |
2332
| methods3.kt:5:1:7:1 | Class3 | methods3.kt:5:1:7:1 | Class3 | Class3() |
2433
| methods4.kt:3:1:11:1 | NestedTest | methods4.kt:3:1:11:1 | NestedTest | NestedTest() |

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

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,11 @@
11
import java
22

3-
query predicate methods(RefType declType, Method m, string signature, string modifiers) {
3+
query predicate methods(RefType declType, Method m, string signature, string modifiers, string compilerGenerated) {
44
m.fromSource() and
55
declType = m.getDeclaringType() and
66
signature = m.getSignature() and
7-
modifiers = concat(string s | m.hasModifier(s) | s, ", ")
7+
modifiers = concat(string s | m.hasModifier(s) | s, ", ") and
8+
if m.isCompilerGenerated() then compilerGenerated = "Compiler generated" else compilerGenerated = ""
89
}
910

1011
query predicate constructors(RefType declType, Constructor c, string signature) {

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

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,7 @@
11
| clinit.kt:3:1:3:24 | setTopLevelInt | clinit.kt:3:1:3:24 | <set-?> | 0 |
2+
| dataClass.kt:0:0:0:0 | copy | dataClass.kt:1:22:1:31 | x | 0 |
3+
| dataClass.kt:0:0:0:0 | copy | dataClass.kt:1:34:1:46 | y | 1 |
4+
| dataClass.kt:0:0:0:0 | equals | dataClass.kt:0:0:0:0 | other | 0 |
25
| methods2.kt:4:1:5:1 | fooBarTopLevelMethod | methods2.kt:4:26:4:31 | x | 0 |
36
| methods2.kt:4:1:5:1 | fooBarTopLevelMethod | methods2.kt:4:34:4:39 | y | 1 |
47
| methods2.kt:8:5:9:5 | fooBarClassMethod | methods2.kt:8:27:8:32 | x | 0 |

0 commit comments

Comments
 (0)