xref: /aosp_15_r20/external/ksp/test-utils/testData/api/javaModifiers.kt (revision af87fb4bb8e3042070d2a054e912924f599b22b7)
1 /*
2  * Copyright 2020 Google LLC
3  * Copyright 2010-2020 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: JavaModifierProcessor
19 // EXPECTED:
20 // C: ABSTRACT PUBLIC : ABSTRACT PUBLIC
21 // C.staticStr: PRIVATE : PRIVATE
22 // C.s1: FINAL JAVA_TRANSIENT : FINAL JAVA_TRANSIENT
23 // C.i1: JAVA_STATIC JAVA_VOLATILE PROTECTED : JAVA_STATIC JAVA_VOLATILE PROTECTED
24 // C.NestedC: JAVA_STATIC PUBLIC : JAVA_STATIC PUBLIC
25 // NestedC.<init>: FINAL PUBLIC : FINAL PUBLIC
26 // C.InnerC: PUBLIC : PUBLIC
27 // InnerC.<init>: FINAL PUBLIC : FINAL PUBLIC
28 // C.intFun: JAVA_DEFAULT JAVA_SYNCHRONIZED : JAVA_DEFAULT JAVA_SYNCHRONIZED
29 // C.foo: ABSTRACT JAVA_STRICT : ABSTRACT JAVA_STRICT
30 // C.<init>: FINAL PUBLIC : FINAL PUBLIC
31 // OuterJavaClass: PUBLIC : PUBLIC
32 // OuterJavaClass.staticPublicField: JAVA_STATIC PUBLIC : JAVA_STATIC PUBLIC
33 // OuterJavaClass.staticPackageProtectedField: JAVA_STATIC : JAVA_STATIC
34 // OuterJavaClass.staticProtectedField: JAVA_STATIC PROTECTED : JAVA_STATIC PROTECTED
35 // OuterJavaClass.staticPrivateField: JAVA_STATIC PRIVATE : JAVA_STATIC PRIVATE
36 // OuterJavaClass.InnerJavaClass: PUBLIC : PUBLIC
37 // InnerJavaClass.<init>: FINAL PUBLIC : FINAL PUBLIC
38 // OuterJavaClass.NestedJavaClass: JAVA_STATIC PUBLIC : JAVA_STATIC PUBLIC
39 // NestedJavaClass.<init>: FINAL PUBLIC : FINAL PUBLIC
40 // OuterJavaClass.staticPublicMethod: JAVA_STATIC PUBLIC : JAVA_STATIC PUBLIC
41 // OuterJavaClass.staticPackageProtectedMethod: JAVA_STATIC : JAVA_STATIC
42 // OuterJavaClass.staticProtectedMethod: JAVA_STATIC PROTECTED : JAVA_STATIC PROTECTED
43 // OuterJavaClass.staticPrivateMethod: JAVA_STATIC PRIVATE : JAVA_STATIC PRIVATE
44 // OuterJavaClass.<init>: FINAL PUBLIC : FINAL PUBLIC
45 // OuterKotlinClass: OPEN : PUBLIC
46 // OuterKotlinClass.InnerKotlinClass: INNER : FINAL PUBLIC
47 // InnerKotlinClass.<init>: FINAL PUBLIC : FINAL PUBLIC
48 // OuterKotlinClass.NestedKotlinClass: OPEN : PUBLIC
49 // NestedKotlinClass.<init>: FINAL PUBLIC : FINAL PUBLIC
50 // OuterKotlinClass.Companion: : FINAL JAVA_STATIC PUBLIC
51 // Companion.companionMethod: : FINAL PUBLIC
52 // Companion.companionField: CONST : FINAL PUBLIC
53 // Companion.privateCompanionMethod: PRIVATE : FINAL PRIVATE
54 // Companion.privateCompanionField: PRIVATE : FINAL PRIVATE
55 // Companion.jvmStaticCompanionMethod: : FINAL JAVA_STATIC PUBLIC
56 // Companion.jvmStaticCompanionField: : FINAL JAVA_STATIC PUBLIC
57 // Companion.customJvmStaticCompanionMethod: : FINAL PUBLIC
58 // Companion.customJvmStaticCompanionField: : FINAL PUBLIC
59 // Companion.<init>: FINAL PUBLIC : FINAL PUBLIC
60 // OuterKotlinClass.transientProperty: : FINAL JAVA_TRANSIENT PUBLIC
61 // OuterKotlinClass.volatileProperty: : FINAL JAVA_VOLATILE PUBLIC
62 // OuterKotlinClass.strictfpFun: : FINAL JAVA_STRICT PUBLIC
63 // OuterKotlinClass.synchronizedFun: : FINAL JAVA_SYNCHRONIZED PUBLIC
64 // OuterKotlinClass.<init>: FINAL PUBLIC : FINAL PUBLIC
65 // DependencyOuterJavaClass: OPEN PUBLIC : PUBLIC
66 // DependencyOuterJavaClass.DependencyNestedJavaClass: OPEN PUBLIC : PUBLIC
67 // DependencyNestedJavaClass.<init>: FINAL PUBLIC : FINAL PUBLIC
68 // DependencyOuterJavaClass.DependencyInnerJavaClass: INNER OPEN PUBLIC : PUBLIC
69 // DependencyInnerJavaClass.<init>: FINAL PUBLIC : FINAL PUBLIC
70 // DependencyOuterJavaClass.synchronizedFun: JAVA_SYNCHRONIZED OPEN : JAVA_SYNCHRONIZED
71 // DependencyOuterJavaClass.strictfpFun: JAVA_STRICT OPEN : JAVA_STRICT
72 // DependencyOuterJavaClass.transientField: FINAL JAVA_TRANSIENT : FINAL JAVA_TRANSIENT
73 // DependencyOuterJavaClass.volatileField: FINAL JAVA_VOLATILE : FINAL JAVA_VOLATILE
74 // DependencyOuterJavaClass.staticPublicMethod: JAVA_STATIC PUBLIC : JAVA_STATIC PUBLIC
75 // DependencyOuterJavaClass.staticPackageProtectedMethod: JAVA_STATIC : JAVA_STATIC
76 // DependencyOuterJavaClass.staticProtectedMethod: JAVA_STATIC PROTECTED : JAVA_STATIC PROTECTED
77 // DependencyOuterJavaClass.staticPrivateMethod: JAVA_STATIC PRIVATE : JAVA_STATIC PRIVATE
78 // DependencyOuterJavaClass.staticPublicField: FINAL JAVA_STATIC PUBLIC : FINAL JAVA_STATIC PUBLIC
79 // DependencyOuterJavaClass.staticPackageProtectedField: FINAL JAVA_STATIC : FINAL JAVA_STATIC
80 // DependencyOuterJavaClass.staticProtectedField: FINAL JAVA_STATIC PROTECTED : FINAL JAVA_STATIC PROTECTED
81 // DependencyOuterJavaClass.staticPrivateField: FINAL JAVA_STATIC PRIVATE : FINAL JAVA_STATIC PRIVATE
82 // DependencyOuterJavaClass.<init>: FINAL PUBLIC : FINAL PUBLIC
83 // DependencyOuterKotlinClass: OPEN PUBLIC : PUBLIC
84 // DependencyOuterKotlinClass.transientProperty: FINAL PUBLIC : FINAL JAVA_TRANSIENT PUBLIC
85 // DependencyOuterKotlinClass.volatileProperty: FINAL PUBLIC : FINAL JAVA_VOLATILE PUBLIC
86 // DependencyOuterKotlinClass.strictfpFun: FINAL PUBLIC : FINAL JAVA_STRICT PUBLIC
87 // DependencyOuterKotlinClass.synchronizedFun: FINAL PUBLIC : FINAL JAVA_SYNCHRONIZED PUBLIC
88 // DependencyOuterKotlinClass.Companion: FINAL PUBLIC : FINAL PUBLIC
89 // Companion.companionField: FINAL PUBLIC : FINAL PUBLIC
90 // Companion.customJvmStaticCompanionField: FINAL PUBLIC : FINAL PUBLIC
91 // Companion.jvmStaticCompanionField: FINAL PUBLIC : FINAL PUBLIC
92 // Companion.privateCompanionField: FINAL PUBLIC : FINAL PUBLIC
93 // Companion.companionMethod: FINAL PUBLIC : FINAL PUBLIC
94 // Companion.customJvmStaticCompanionMethod: FINAL PUBLIC : FINAL PUBLIC
95 // Companion.jvmStaticCompanionMethod: FINAL PUBLIC : FINAL PUBLIC
96 // Companion.privateCompanionMethod: FINAL PRIVATE : FINAL PRIVATE
97 // Companion.<init>: FINAL PRIVATE : FINAL PRIVATE
98 // DependencyOuterKotlinClass.DependencyInnerKotlinClass: FINAL INNER PUBLIC : FINAL PUBLIC
99 // DependencyInnerKotlinClass.<init>: FINAL PUBLIC : FINAL PUBLIC
100 // DependencyOuterKotlinClass.DependencyNestedKotlinClass: OPEN PUBLIC : PUBLIC
101 // DependencyNestedKotlinClass.<init>: FINAL PUBLIC : FINAL PUBLIC
102 // DependencyOuterKotlinClass.<init>: FINAL PUBLIC : FINAL PUBLIC
103 // END
104 // MODULE: module1
105 // FILE: DependencyOuterJavaClass.java
106 public class DependencyOuterJavaClass {
107     public class DependencyInnerJavaClass {}
108     public static class DependencyNestedJavaClass {}
109     public static void staticPublicMethod() {}
110     public static String staticPublicField;
<lambda>null111     static void staticPackageProtectedMethod() {}
112     static String staticPackageProtectedField;
113     protected static void staticProtectedMethod() {}
114     protected static String staticProtectedField;
115     private static void staticPrivateMethod() {}
116     private static String staticPrivateField;
117     transient String transientField = "";
118     volatile String volatileField = "";
<lambda>null119     synchronized String synchronizedFun() { return ""; }
<lambda>null120     strictfp String strictfpFun() { return ""; }
121 }
122 // FILE: DependencyOuterKotlinClass.kt
123 typealias DependencyCustomJvmStatic=JvmStatic
124 open class DependencyOuterKotlinClass {
125     inner class DependencyInnerKotlinClass
126     open class DependencyNestedKotlinClass
127     companion object {
companionMethodnull128         fun companionMethod() {}
129         val companionField:String = ""
privateCompanionMethodnull130         private fun privateCompanionMethod() {}
131         val privateCompanionField:String = ""
132         @JvmStatic
jvmStaticCompanionMethodnull133         fun jvmStaticCompanionMethod() {}
134         @JvmStatic
135         val jvmStaticCompanionField:String = ""
136         @DependencyCustomJvmStatic
customJvmStaticCompanionMethodnull137         fun customJvmStaticCompanionMethod() {}
138         @DependencyCustomJvmStatic
139         val customJvmStaticCompanionField:String = ""
140     }
141 
142     @Transient
143     val transientProperty: String = ""
144 
145     @Volatile
146     var volatileProperty: String = ""
147 
148     @Strictfp
strictfpFunnull149     fun strictfpFun(): String = ""
150 
151     @Synchronized
152     fun synchronizedFun(): String = ""
153 }
154 // MODULE: main(module1)
155 // FILE: a.kt
156 annotation class Test
157 
158 @Test
159 class Foo : C() {
160 
161 }
162 
163 @Test
164 class Bar : OuterJavaClass()
165 
166 @Test
167 class Baz : OuterKotlinClass()
168 
169 @Test
170 class JavaDependency : DependencyOuterJavaClass()
171 
172 @Test
173 class KotlinDependency : DependencyOuterKotlinClass()
174 
175 // FILE: C.java
176 
177 public abstract class C {
178 
179     private String staticStr = "str"
180 
181     final transient String s1;
182 
183     protected static volatile int i1;
184 
185     default synchronized int intFun() {
186         return 1;
187     }
188 
189     abstract strictfp void foo() {}
190 
191     public static class NestedC {
192 
193     }
194 
195     public class InnerC {
196 
197     }
198 }
199 
200 // FILE: OuterJavaClass.java
201 public class OuterJavaClass {
202     public class InnerJavaClass {}
203     public static class NestedJavaClass {}
204     public static void staticPublicMethod() {}
205     public static String staticPublicField;
<lambda>null206     static void staticPackageProtectedMethod() {}
207     static String staticPackageProtectedField;
208     protected static void staticProtectedMethod() {}
209     protected static String staticProtectedField;
210     private static void staticPrivateMethod() {}
211     private static String staticPrivateField;
212 }
213 // FILE: OuterKotlinClass.kt
214 typealias CustomJvmStatic=JvmStatic
215 open class OuterKotlinClass {
216     inner class InnerKotlinClass
217     open class NestedKotlinClass
218     companion object {
companionMethodnull219         fun companionMethod() {}
220         const val companionField:String = ""
privateCompanionMethodnull221         private fun privateCompanionMethod() {}
222         private val privateCompanionField:String = ""
223         @JvmStatic
jvmStaticCompanionMethodnull224         fun jvmStaticCompanionMethod() {}
225         @JvmStatic
226         val jvmStaticCompanionField:String = ""
227         @CustomJvmStatic
customJvmStaticCompanionMethodnull228         fun customJvmStaticCompanionMethod() {}
229         @CustomJvmStatic
230         val customJvmStaticCompanionField:String = ""
231     }
232 
233     @Transient
234     val transientProperty: String = ""
235 
236     @Volatile
237     var volatileProperty: String = ""
238 
239     @Strictfp
strictfpFunnull240     fun strictfpFun(): String = ""
241 
242     @Synchronized
243     fun synchronizedFun(): String = ""
244 }
245