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 = .()) } } class Host { val testMember: String /* by */ field = DelegateProvider(value = "OK").provideDelegate(thisRef = , property = Host::testMember) get(): String { return .#testMember$delegate.getValue(thisRef = , property = Host::testMember) } constructor() /* primary */ { super/*Any*/() /* () */ } }