// ISSUE: KT-63646 // WITH_STDLIB interface MyPropertyDelegateProvider { operator fun provideDelegate(thisRef: Nothing?, property: kotlin.reflect.KProperty<*>): Y1 } // To look for `getValue` we need to fix Y2 after `provideDelegate` call fun foo(x: () -> Y2): MyPropertyDelegateProvider = TODO() interface MyLazy { operator fun getValue(thisRef: Any?, property: kotlin.reflect.KProperty<*>): X1 = TODO() } fun myLazy(x: () -> X3): MyLazy = TODO() val property1 by foo { myLazy { "1" } } val property2 by foo { lazy { "2" } // Regular lazy has `getValue` as an extension } fun main() { property1.length property2.length }