// FIR_IDENTICAL // WITH_STDLIB import kotlin.reflect.KMutableProperty0 class Controller fun generate(g: suspend Controller.() -> Unit): S1 = TODO() interface ReadonlyPropertyKey fun Controller.implement( propertyKey: ReadonlyPropertyKey, getter: () -> V2, ) { } fun Controller.implement( propertyKey: ReadonlyPropertyKey, prop: KMutableProperty0, ) { } interface Screen { val screen: Any? get() = "" } val Name: ReadonlyPropertyKey = TODO() val Screen.name: String get() = "" class A : Screen { fun foo() { generate { implement(Name, ::name) }.screen } }