xref: /aosp_15_r20/external/ksp/test-utils/testData/api/declarationUtil.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: DeclarationUtilProcessor
19*af87fb4bSXin Li // FORMAT: <name>: isInternal: isLocal: isPrivate: isProtected: isPublic: isOpen
20*af87fb4bSXin Li // EXPECTED:
21*af87fb4bSXin Li // Cls: internal
22*af87fb4bSXin Li // Cls / <init>: public
23*af87fb4bSXin Li // Cls.b: public open
24*af87fb4bSXin Li // Cls / <init>: public
25*af87fb4bSXin Li // Cls / <init> / aaa: local
26*af87fb4bSXin Li // Cls.prop: public open
27*af87fb4bSXin Li // Cls.protectedProp: protected open
28*af87fb4bSXin Li // Cls.abstractITFFun: public open
29*af87fb4bSXin Li // Cls.pri: private
30*af87fb4bSXin Li // ITF: public open
31*af87fb4bSXin Li // ITF.prop: public open
32*af87fb4bSXin Li // ITF.protectedProp: protected open
33*af87fb4bSXin Li // ITF.b: public open
34*af87fb4bSXin Li // ITF.abstractITFFun: public open
35*af87fb4bSXin Li // ITF.nonAbstractITFFun: public open
36*af87fb4bSXin Li // ITF.nonAbstractITFFun / aa: local
37*af87fb4bSXin Li // NestedClassSubjects: public open
38*af87fb4bSXin Li // NestedClassSubjects.NestedDataClass: public
39*af87fb4bSXin Li // NestedClassSubjects.NestedDataClass / <init>: public
40*af87fb4bSXin Li // NestedClassSubjects.NestedDataClass.field: public
41*af87fb4bSXin Li // NestedClassSubjects.NestedFinalClass: public
42*af87fb4bSXin Li // NestedClassSubjects.NestedFinalClass / <init>: public
43*af87fb4bSXin Li // NestedClassSubjects.NestedFinalClass.field: public
44*af87fb4bSXin Li // NestedClassSubjects.NestedOpenClass: public open
45*af87fb4bSXin Li // NestedClassSubjects.NestedOpenClass / <init>: public
46*af87fb4bSXin Li // NestedClassSubjects.NestedOpenClass.field: public
47*af87fb4bSXin Li // NestedClassSubjects.NestedInterface: public open
48*af87fb4bSXin Li // SealedBase: public open
49*af87fb4bSXin Li // SealedBase.<init>: public
50*af87fb4bSXin Li // SealedImpl: public
51*af87fb4bSXin Li // SealedImpl.<init>: public
52*af87fb4bSXin Li // END
53*af87fb4bSXin Li // FILE: a.kt
54*af87fb4bSXin Li internal class Cls(override val b: Int) : ITF {
55*af87fb4bSXin Li     constructor() {
56*af87fb4bSXin Li         val aaa = 2
57*af87fb4bSXin Li         Cls(aaa)
58*af87fb4bSXin Li     }
59*af87fb4bSXin Li     override val prop: Int = 2
60*af87fb4bSXin Li 
61*af87fb4bSXin Li     override val protectedProp: Int = 2
62*af87fb4bSXin Li 
abstractITFFunnull63*af87fb4bSXin Li     override fun abstractITFFun(): Int {
64*af87fb4bSXin Li         return 2
65*af87fb4bSXin Li     }
66*af87fb4bSXin Li 
67*af87fb4bSXin Li     private val pri: Int = 3
68*af87fb4bSXin Li }
69*af87fb4bSXin Li 
70*af87fb4bSXin Li interface ITF {
71*af87fb4bSXin Li     val prop: Int
72*af87fb4bSXin Li 
73*af87fb4bSXin Li     protected val protectedProp: Int
74*af87fb4bSXin Li 
75*af87fb4bSXin Li     val b: Int = 1
76*af87fb4bSXin Li 
abstractITFFunnull77*af87fb4bSXin Li     fun abstractITFFun(): Int
78*af87fb4bSXin Li 
79*af87fb4bSXin Li     fun nonAbstractITFFun(): Int {
80*af87fb4bSXin Li         val aa = "local"
81*af87fb4bSXin Li         return 1
82*af87fb4bSXin Li     }
83*af87fb4bSXin Li }
84*af87fb4bSXin Li 
85*af87fb4bSXin Li interface NestedClassSubjects {
86*af87fb4bSXin Li     data class NestedDataClass(
87*af87fb4bSXin Li         val field: String,
88*af87fb4bSXin Li     )
89*af87fb4bSXin Li     class NestedFinalClass(
90*af87fb4bSXin Li         val field: String,
91*af87fb4bSXin Li     )
92*af87fb4bSXin Li     open class NestedOpenClass(
93*af87fb4bSXin Li         val field: String,
94*af87fb4bSXin Li     )
95*af87fb4bSXin Li     interface NestedInterface
96*af87fb4bSXin Li }
97*af87fb4bSXin Li 
98*af87fb4bSXin Li sealed class SealedBase
99*af87fb4bSXin Li 
100*af87fb4bSXin Li class SealedImpl: SealedBase
101