Files
kotlin-fork/compiler/fir/analysis-tests/testData/resolve/expresssions/protectedVisibility.kt
T
2020-03-19 09:51:01 +03:00

64 lines
1.1 KiB
Kotlin
Vendored

open class Protected {
protected fun bar() {}
fun baz() {
bar()
Nested().foo()
}
inner class Inner {
fun foo() {
bar()
}
}
protected open class Nested {
fun foo() {
bar()
}
protected fun bar() {}
}
protected companion object {
fun fromCompanion() {}
protected fun protectedFromCompanion() {}
}
}
class Derived : Protected() {
fun foo() {
bar()
Nested().foo()
Nested().<!INAPPLICABLE_CANDIDATE!>bar<!>() // hidden
fromCompanion()
protectedFromCompanion()
}
private class NestedDerived : Nested() {
fun use() {
bar()
}
}
}
fun test() {
Protected().baz()
Protected().Inner()
Protected().<!INAPPLICABLE_CANDIDATE!>bar<!>() // hidden
Protected.<!INAPPLICABLE_CANDIDATE!>Nested<!>() // hidden
}
open class Generic<T>(val x: T) {
protected open fun foo(): T = x
}
class DerivedGeneric : Generic<Int>(1) {
override fun foo(): Int {
return super.foo()
}
}