blob: 368fb799843eab1b30e4657a1be4856da62cbc8b [file] [log] [blame]
/*
* Copyright 2020 Google LLC
* Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
// TEST PROCESSOR: DeclarationUtilProcessor
// FORMAT: <name>: isInternal: isLocal: isPrivate: isProtected: isPublic: isOpen
// EXPECTED:
// Cls: internal
// Cls / <init>: public
// Cls.b: public open
// Cls / <init>: public
// Cls / <init> / aaa: local
// Cls.prop: public open
// Cls.protectedProp: protected open
// Cls.abstractITFFun: public open
// Cls.pri: private
// ITF: public open
// ITF.prop: public open
// ITF.protectedProp: protected open
// ITF.b: public open
// ITF.abstractITFFun: public open
// ITF.nonAbstractITFFun: public open
// ITF.nonAbstractITFFun / aa: local
// NestedClassSubjects: public open
// NestedClassSubjects.NestedDataClass: public
// NestedClassSubjects.NestedDataClass / <init>: public
// NestedClassSubjects.NestedDataClass.field: public
// NestedClassSubjects.NestedFinalClass: public
// NestedClassSubjects.NestedFinalClass / <init>: public
// NestedClassSubjects.NestedFinalClass.field: public
// NestedClassSubjects.NestedOpenClass: public open
// NestedClassSubjects.NestedOpenClass / <init>: public
// NestedClassSubjects.NestedOpenClass.field: public
// NestedClassSubjects.NestedInterface: public open
// SealedBase: public open
// SealedBase.<init>: public
// SealedImpl: public
// SealedImpl.<init>: public
// END
// FILE: a.kt
internal class Cls(override val b: Int) : ITF {
constructor() {
val aaa = 2
Cls(aaa)
}
override val prop: Int = 2
override val protectedProp: Int = 2
override fun abstractITFFun(): Int {
return 2
}
private val pri: Int = 3
}
interface ITF {
val prop: Int
protected val protectedProp: Int
val b: Int = 1
fun abstractITFFun(): Int
fun nonAbstractITFFun(): Int {
val aa = "local"
return 1
}
}
interface NestedClassSubjects {
data class NestedDataClass(
val field: String,
)
class NestedFinalClass(
val field: String,
)
open class NestedOpenClass(
val field: String,
)
interface NestedInterface
}
sealed class SealedBase
class SealedImpl: SealedBase