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