interface I {
  val <T : Any?> T.id: T
    get(): T {
      return <this>
    }

}

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

  }

  override val <T : Any?> T.id: T
    override get(): T {
      return (<this>.#<$$delegate_0>, <this>).<get-id><T>()
    }

  local /* final field */ val <$$delegate_0>: I = i

}
