// ISSUE: KT-41982 import kotlin.reflect.KProperty class Delegate { operator fun getValue(thisRef: R, property: KProperty<*>): T = null!! operator fun setValue(thisRef: R, property: KProperty<*>, value: T) {} } abstract class DelegateProvider fun > Type.long(initializer: (() -> Long?)? = null): Delegate = null!! class Test : DelegateProvider() { var start by long { 0 } }