// !DIAGNOSTICS: -UNUSED_PARAMETER -OPT_IN_IS_NOT_ENABLED // WITH_STDLIB import kotlin.experimental.ExperimentalTypeInference @OptIn(ExperimentalTypeInference::class) class A1 { fun builder1(configure: A2.() -> Unit) {} } @OptIn(ExperimentalTypeInference::class) class A2 { fun builder2(configure: A3.() -> Unit) {} } @OptIn(ExperimentalTypeInference::class) class A3 { fun builder3(configure: A4.() -> Unit) {} } class A4 { fun resolver(x: A3_BT3) {} } fun foo1(x: A1) { x.builder1 { val x by lazy { builder2 { builder3 { resolver("") } } } } } fun foo2(x: A1) { x.builder1 { builder2 { val x by lazy { builder3 { resolver("") } } } } } fun foo3(x: A1) { x.builder1 { builder2 { class A { fun foo() = builder3 { resolver("") } } } } } fun foo4(x: A1) { x.builder1 { class A { fun foo() = builder2 { builder3 { resolver("") } } } } } fun foo5(x: A1) { x.builder1 { builder2 { class A { fun foo() { builder3 { resolver("") } } } } } } fun foo6(x: A1) { x.builder1 { class A { fun foo() { builder2 { builder3 { resolver("") } } } } } } fun box(): String { foo1(A1()) foo2(A1()) foo3(A1()) foo4(A1()) foo5(A1()) foo6(A1()) return "OK" }