xref: /aosp_15_r20/external/ksp/test-utils/testData/api/getSymbolsFromAnnotation.kt (revision af87fb4bb8e3042070d2a054e912924f599b22b7)
1 /*
2  * Copyright 2022 Google LLC
3  * Copyright 2010-2022 JetBrains s.r.o. and Kotlin Programming Language contributors.
4  *
5  * Licensed under the Apache License, Version 2.0 (the "License");
6  * you may not use this file except in compliance with the License.
7  * You may obtain a copy of the License at
8  *
9  * http://www.apache.org/licenses/LICENSE-2.0
10  *
11  * Unless required by applicable law or agreed to in writing, software
12  * distributed under the License is distributed on an "AS IS" BASIS,
13  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14  * See the License for the specific language governing permissions and
15  * limitations under the License.
16  */
17 
18 // TEST PROCESSOR: GetSymbolsFromAnnotationProcessor
19 // EXPECTED:
20 // ==== Anno superficial====
21 // Foo:KSClassDeclaration
22 // <init>:KSFunctionDeclaration
23 // constructorParameterFoo:KSValueParameter
24 // param:KSValueParameter
25 // constructorParameterFoo:KSPropertyDeclaration
26 // propertyFoo:KSPropertyDeclaration
27 // functionFoo:KSFunctionDeclaration
28 // p1:KSValueParameter
29 // Bar:KSClassDeclaration
30 // Baz:KSClassDeclaration
31 // Burp:KSClassDeclaration
32 // Flux:KSTypeAlias
33 // ==== Anno in depth ====
34 // Foo:KSClassDeclaration
35 // <init>:KSFunctionDeclaration
36 // constructorParameterFoo:KSValueParameter
37 // param:KSValueParameter
38 // constructorParameterFoo:KSPropertyDeclaration
39 // propertyFoo:KSPropertyDeclaration
40 // functionFoo:KSFunctionDeclaration
41 // p1:KSValueParameter
42 // local:KSPropertyDeclaration
43 // Bar:KSClassDeclaration
44 // Baz:KSClassDeclaration
45 // Burp:KSClassDeclaration
46 // Flux:KSTypeAlias
47 // ==== Bnno superficial====
48 // File: Foo.kt:KSFile
49 // <init>:KSFunctionDeclaration
50 // propertyFoo.getter():KSPropertyAccessorImpl
51 // p2:KSValueParameter
52 // ==== Bnno in depth ====
53 // File: Foo.kt:KSFile
54 // <init>:KSFunctionDeclaration
55 // propertyFoo.getter():KSPropertyAccessorImpl
56 // p2:KSValueParameter
57 // ==== A1 superficial====
58 // Foo:KSClassDeclaration
59 // <init>:KSFunctionDeclaration
60 // constructorParameterFoo:KSValueParameter
61 // param:KSValueParameter
62 // constructorParameterFoo:KSPropertyDeclaration
63 // propertyFoo:KSPropertyDeclaration
64 // functionFoo:KSFunctionDeclaration
65 // p1:KSValueParameter
66 // Bar:KSClassDeclaration
67 // Baz:KSClassDeclaration
68 // Burp:KSClassDeclaration
69 // Flux:KSTypeAlias
70 // ==== A1 in depth ====
71 // Foo:KSClassDeclaration
72 // <init>:KSFunctionDeclaration
73 // constructorParameterFoo:KSValueParameter
74 // param:KSValueParameter
75 // constructorParameterFoo:KSPropertyDeclaration
76 // propertyFoo:KSPropertyDeclaration
77 // functionFoo:KSFunctionDeclaration
78 // p1:KSValueParameter
79 // local:KSPropertyDeclaration
80 // Bar:KSClassDeclaration
81 // Baz:KSClassDeclaration
82 // Burp:KSClassDeclaration
83 // Flux:KSTypeAlias
84 // ==== A2 superficial====
85 // Foo:KSClassDeclaration
86 // <init>:KSFunctionDeclaration
87 // constructorParameterFoo:KSValueParameter
88 // param:KSValueParameter
89 // constructorParameterFoo:KSPropertyDeclaration
90 // propertyFoo:KSPropertyDeclaration
91 // functionFoo:KSFunctionDeclaration
92 // p1:KSValueParameter
93 // Bar:KSClassDeclaration
94 // Baz:KSClassDeclaration
95 // Burp:KSClassDeclaration
96 // Flux:KSTypeAlias
97 // ==== A2 in depth ====
98 // Foo:KSClassDeclaration
99 // <init>:KSFunctionDeclaration
100 // constructorParameterFoo:KSValueParameter
101 // param:KSValueParameter
102 // constructorParameterFoo:KSPropertyDeclaration
103 // propertyFoo:KSPropertyDeclaration
104 // functionFoo:KSFunctionDeclaration
105 // p1:KSValueParameter
106 // local:KSPropertyDeclaration
107 // Bar:KSClassDeclaration
108 // Baz:KSClassDeclaration
109 // Burp:KSClassDeclaration
110 // Flux:KSTypeAlias
111 // ==== Cnno in depth ====
112 // constructorParameterFoo:KSValueParameter
113 // <set-?>:KSValueParameter
114 // x:KSValueParameter
115 // x:KSPropertyDeclaration
116 // END
117 //FILE: annotations.kt
118 annotation class Anno
119 annotation class Bnno
120 annotation class Cnno
121 typealias A1 = Anno
122 typealias A2 = A1
123 
124 //FILE: Foo.kt
125 @file:Bnno
126 
127 import Anno
128 import Anno as A3
129 
130 @Anno
131 class Foo @Anno constructor(@Anno @param:Cnno val constructorParameterFoo: Int, @Anno param: Int){
132     @Bnno constructor() {
133 
134     }
135 
136     @Anno
137     val propertyFoo: String
138     @Bnno get() = TODO()
139 
140     @Anno
functionFoonull141     fun functionFoo(@Anno p1: Int, @Bnno p2: Int) {
142         @Anno val local = 1
143     }
144 
145     @setparam:Cnno
146     var a = 1
147 }
148 
149 class C(@Cnno val x: Int)
150 
151 @A1
152 class Bar
153 
154 @A2
155 class Baz
156 
157 @A3
158 class Burp
159 
160 @Anno
161 typealias Flux = String
162