blob: 895bf2ac9c12045f506ff296b4d82ea40a77308f [file] [log] [blame]
// KT-49992
import kotlin.reflect.KFunction0
open class A {
private val x: String? = null
fun test0() {
x
this.x
}
open class Nested : A() {
private val y: String? = null
fun test1(): String? = <!INVISIBLE_REFERENCE!>x<!>
fun test2(): String? = this.<!INVISIBLE_REFERENCE!>x<!>
class NestedInNested : Nested() {
fun test20(): String? = <!INVISIBLE_REFERENCE!>y<!>
fun test21(): String? = this.<!INVISIBLE_REFERENCE!>y<!>
}
inner class InnerInNested : Nested() {
fun test23(): String? = y
fun test24(): String? = this.<!INVISIBLE_REFERENCE!>y<!>
}
}
interface I {
fun test401(): KFunction0<Unit>
}
open inner class Inner : A(), I {
private val y: String? = null
fun test3(): String? = x
fun test4(): String? = this.<!INVISIBLE_REFERENCE!>x<!>
inner class InnerInInner : Inner() {
fun test40(): String? = x
fun test41(): String? = y
}
private fun test400() {
}
override fun test401(): KFunction0<Unit> {
return this::test400
}
}
fun test5() {
object : A() {
fun local() {
x
this.<!INVISIBLE_REFERENCE!>x<!>
}
inner class NestedInAnonymous() {
fun test50(): String? = x
}
}
}
}
fun A.extensionFun(): String? = this.<!INVISIBLE_REFERENCE!>x<!>
abstract class B<T: B<T>> {
protected abstract val thisBuilder: T
private val x: String? = null
fun test6(obj: Any?) = thisBuilder.apply {
obj?.let { this.x }
}
}