blob: bc11a118ac52529019970822d9e4f94a54deb0fa [file]
// RUN_PIPELINE_TILL: BACKEND
package foo
class C(val i: Int?) {}
class A(val c: C) {
fun test1() {
if (this@A.c.i != null) {
useInt(<!DEBUG_INFO_SMARTCAST!>this.c.i<!>)
useInt(<!DEBUG_INFO_SMARTCAST!>c.i<!>)
}
}
inner class B {
fun test2() {
if (c.i != null) {
useInt(<!DEBUG_INFO_SMARTCAST!>this@A.c.i<!>)
}
}
}
}
fun A.foo() {
if (this@foo.c.i != null) {
useInt(<!DEBUG_INFO_SMARTCAST!>this.c.i<!>)
useInt(<!DEBUG_INFO_SMARTCAST!>c.i<!>)
}
}
fun test3() {
useFunction {
if(c.i != null) {
useInt(<!DEBUG_INFO_SMARTCAST!>this.c.i<!>)
}
}
}
fun useInt(i: Int) = i
fun useFunction(f: A.() -> Unit) = f
/* GENERATED_FIR_TAGS: classDeclaration, equalityExpression, funWithExtensionReceiver, functionDeclaration,
functionalType, ifExpression, inner, lambdaLiteral, nullableType, primaryConstructor, propertyDeclaration, smartcast,
thisExpression, typeWithExtension */