val testO: String /* by */
  field = provideDelegate(/* <this> = MyClass(value = "O"), */ host = null, p = ::testO)
  get(): String {
    return getValue(/* <this> = #testO$delegate, */ receiver = null, p = ::testO)
  }

val testK: String /* by */
  field = "K"
  get(): String {
    return getValue(/* <this> = #testK$delegate, */ receiver = null, p = ::testK)
  }

val testOK: String
  field = <get-testO>().plus(other = <get-testK>())
  get

class MyClass {
  val value: String
    field = value
    get

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

  }

}

operator fun String.getValue(receiver: Any?, p: Any): String {
  return <this>
}

operator fun MyClass.provideDelegate(host: Any?, p: Any): String {
  return <this>.<get-value>()
}

