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

  }

  operator fun getValue(t: A, p: KProperty<*>): Int {
    return 1
  }

}

class F {
  val A.prop: Int /* by */
    field = Delegate()
    get(): Int {
      return <this>.#prop$delegate.getValue(t = <this>, p = F::prop)
    }

  class A {
    constructor() /* primary */ {
      super/*Any*/()
      /* <init>() */

    }

  }

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

  }

}
