// !DIAGNOSTICS: -UNUSED_PARAMETER -EXPERIMENTAL_IS_NOT_ENABLED // WITH_RUNTIME import kotlin.experimental.ExperimentalTypeInference @OptIn(ExperimentalTypeInference::class) class A1 { fun builder1(@BuilderInference configure: A2.() -> Unit) {} } @OptIn(ExperimentalTypeInference::class) class A2 { fun builder2(@BuilderInference configure: A3.() -> Unit) {} } @OptIn(ExperimentalTypeInference::class) class A3 { fun builder3(@BuilderInference configure: A4.() -> Unit) {} } class A4 { fun resolver(x: A3_BT3) {} } fun foo(x: A1) { x.builder1 { builder2 { builder3 { resolver("") } builder3 { resolver("") } } builder2 { builder3 { resolver("") } builder3 { resolver("") } } } } fun box(): String { foo(A1()) return "OK" }