class Delegate { val value: String field = value get constructor(value: String) /* primary */ { super/*Any*/() /* () */ } operator fun getValue(thisRef: Any?, property: Any?): String { return .() } } class DelegateProvider { val value: String field = value get constructor(value: String) /* primary */ { super/*Any*/() /* () */ } operator fun provideDelegate(thisRef: Any?, property: Any?): Delegate { return Delegate(value = .()) } } fun foo() { val testMember: String val testMember$delegate: Delegate = DelegateProvider(value = "OK").provideDelegate(thisRef = null, property = ::testMember) local get(): String { return testMember$delegate.getValue(thisRef = null, property = ::testMember) } }