class Delegate {
  constructor(value: String) /* primary */ {
    super/*Any*/()
    /* <init>() */

  }

  val value: String
    field = value
    get

  operator fun getValue(thisRef: Any?, property: Any?): String {
    return <this>.<get-value>()
  }

}

class DelegateProvider {
  constructor(value: String) /* primary */ {
    super/*Any*/()
    /* <init>() */

  }

  val value: String
    field = value
    get

  operator fun provideDelegate(thisRef: Any?, property: Any?): Delegate {
    return Delegate(value = <this>.<get-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)
    }

}
