xref: /aosp_15_r20/external/ksp/test-utils/testData/api/visibilities.kt (revision af87fb4bb8e3042070d2a054e912924f599b22b7)
1*af87fb4bSXin Li /*
2*af87fb4bSXin Li  * Copyright 2020 Google LLC
3*af87fb4bSXin Li  * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors.
4*af87fb4bSXin Li  *
5*af87fb4bSXin Li  * Licensed under the Apache License, Version 2.0 (the "License");
6*af87fb4bSXin Li  * you may not use this file except in compliance with the License.
7*af87fb4bSXin Li  * You may obtain a copy of the License at
8*af87fb4bSXin Li  *
9*af87fb4bSXin Li  * http://www.apache.org/licenses/LICENSE-2.0
10*af87fb4bSXin Li  *
11*af87fb4bSXin Li  * Unless required by applicable law or agreed to in writing, software
12*af87fb4bSXin Li  * distributed under the License is distributed on an "AS IS" BASIS,
13*af87fb4bSXin Li  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14*af87fb4bSXin Li  * See the License for the specific language governing permissions and
15*af87fb4bSXin Li  * limitations under the License.
16*af87fb4bSXin Li  */
17*af87fb4bSXin Li 
18*af87fb4bSXin Li // TEST PROCESSOR: VisibilityProcessor
19*af87fb4bSXin Li // EXPECTED:
20*af87fb4bSXin Li // publicFun: PUBLIC,visible in A, B, D: true, true, true
21*af87fb4bSXin Li // packageFun: JAVA_PACKAGE,visible in A, B, D: true, false, true
22*af87fb4bSXin Li // privateFun: PRIVATE,visible in A, B, D: false, false, false
23*af87fb4bSXin Li // protectedFun: PROTECTED,visible in A, B, D: true, false, true
24*af87fb4bSXin Li // <init>: PUBLIC,visible in A, B, D: true, true, true
25*af87fb4bSXin Li // javaPackageField: JAVA_PACKAGE,visible in A, B, D: true, false, true
26*af87fb4bSXin Li // x: INTERNAL,visible in A, B, D: false, false, false
27*af87fb4bSXin Li // y: PROTECTED,visible in A, B, D: true, false, true
28*af87fb4bSXin Li // y: PUBLIC,visible in A, B, D: true, true, true
29*af87fb4bSXin Li // LibEnumJava: valueOf: PUBLIC
30*af87fb4bSXin Li // LibEnumJava: values: PUBLIC
31*af87fb4bSXin Li // LibEnumJava: <init>: PRIVATE
32*af87fb4bSXin Li // LibEnum: valueOf: PUBLIC
33*af87fb4bSXin Li // LibEnum: values: PUBLIC
34*af87fb4bSXin Li // LibEnum: <init>: PRIVATE
35*af87fb4bSXin Li // Enum: <init>: PRIVATE
36*af87fb4bSXin Li // Enum: values: PUBLIC
37*af87fb4bSXin Li // Enum: valueOf: PUBLIC
38*af87fb4bSXin Li // KtEnum: <init>: PRIVATE
39*af87fb4bSXin Li // KtEnumWithVal: <init>: PRIVATE
40*af87fb4bSXin Li // END
41*af87fb4bSXin Li 
42*af87fb4bSXin Li // MODULE: lib
43*af87fb4bSXin Li // FILE: JavaClass.java
44*af87fb4bSXin Li public class JavaClass {
45*af87fb4bSXin Li     int javaPackageField;
46*af87fb4bSXin Li }
47*af87fb4bSXin Li 
48*af87fb4bSXin Li // FILE: LibEnumJava.java
49*af87fb4bSXin Li public enum LibEnumJava {
50*af87fb4bSXin Li     R(0),G(1),B(2);
51*af87fb4bSXin Li     private final int v;
52*af87fb4bSXin Li     LibEnumJava(int v) {
53*af87fb4bSXin Li         this.v = v;
54*af87fb4bSXin Li     }
55*af87fb4bSXin Li }
56*af87fb4bSXin Li 
57*af87fb4bSXin Li // FILE: lib.kt
58*af87fb4bSXin Li open class KotlinClass {
59*af87fb4bSXin Li     open internal val x: Int = 0
60*af87fb4bSXin Li     open protected val y: Int = 0
61*af87fb4bSXin Li }
62*af87fb4bSXin Li 
63*af87fb4bSXin Li enum class LibEnum(val value: Int) {
64*af87fb4bSXin Li     A(0), B(1), C(2);
65*af87fb4bSXin Li }
66*af87fb4bSXin Li 
67*af87fb4bSXin Li // MODULE: main(lib)
68*af87fb4bSXin Li // FILE: a.kt
69*af87fb4bSXin Li annotation class TestA
70*af87fb4bSXin Li annotation class TestB
71*af87fb4bSXin Li annotation class TestD
72*af87fb4bSXin Li 
73*af87fb4bSXin Li @TestA
74*af87fb4bSXin Li class A : C() {
75*af87fb4bSXin Li }
76*af87fb4bSXin Li 
77*af87fb4bSXin Li @TestD
78*af87fb4bSXin Li class D {}
79*af87fb4bSXin Li 
80*af87fb4bSXin Li class KotlinSubClass : KotlinClass() {
81*af87fb4bSXin Li     public override val y = 1
82*af87fb4bSXin Li }
83*af87fb4bSXin Li 
84*af87fb4bSXin Li enum class KtEnum {
85*af87fb4bSXin Li     A,B,C
86*af87fb4bSXin Li }
87*af87fb4bSXin Li 
88*af87fb4bSXin Li enum class KtEnumWithVal(val a: Int) {
89*af87fb4bSXin Li     A(0), B(1), C(2)
90*af87fb4bSXin Li }
91*af87fb4bSXin Li 
92*af87fb4bSXin Li // FILE: C.java
93*af87fb4bSXin Li class C {
<lambda>null94*af87fb4bSXin Li     public int publicFun() {
95*af87fb4bSXin Li         return 1;
96*af87fb4bSXin Li     }
97*af87fb4bSXin Li 
98*af87fb4bSXin Li     int packageFun() {
99*af87fb4bSXin Li         return 1;
100*af87fb4bSXin Li     }
101*af87fb4bSXin Li 
<lambda>null102*af87fb4bSXin Li     private int privateFun() {
103*af87fb4bSXin Li         return 1;
104*af87fb4bSXin Li     }
105*af87fb4bSXin Li 
<lambda>null106*af87fb4bSXin Li     protected int protectedFun() {
107*af87fb4bSXin Li         return 1;
108*af87fb4bSXin Li     }
109*af87fb4bSXin Li }
110*af87fb4bSXin Li 
111*af87fb4bSXin Li // FILE: Enum.java
112*af87fb4bSXin Li public enum Enum {
113*af87fb4bSXin Li     Y,U,V;
114*af87fb4bSXin Li     private final int v;
115*af87fb4bSXin Li     Enum(int v) {
116*af87fb4bSXin Li         this.v = v;
117*af87fb4bSXin Li     }
118*af87fb4bSXin Li }
119*af87fb4bSXin Li // FILE: b.kt
120*af87fb4bSXin Li package somePackage
121*af87fb4bSXin Li 
122*af87fb4bSXin Li import TestB
123*af87fb4bSXin Li 
124*af87fb4bSXin Li @TestB
125*af87fb4bSXin Li class B
126