// RUN_PIPELINE_TILL: BACKEND
interface B
interface C {
    val b: B
}

fun A(b: B?, flag: Boolean = true) = A(b!!, flag)

fun A(c: C, flag: Boolean = true) = A(c.b, flag)

class A(val b: B, val flag: Boolean = true)


fun foo(c: C, b: B, bn: B?) {
    val x = A(c)
    val y = A(b)
    val z = A(bn)
}

/* GENERATED_FIR_TAGS: checkNotNullCall, classDeclaration, functionDeclaration, interfaceDeclaration, localProperty,
nullableType, primaryConstructor, propertyDeclaration */
