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

  }

  operator fun getValue(thisRef: Any?, kProp: Any): Int {
    return 1
  }

  operator fun setValue(thisRef: Any?, kProp: Any, value: Int) {
  }

}

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

  }

  var varWithPrivateSet: Int
    field = 1
    get
    private set

  var varWithProtectedSet: Int
    field = 1
    get
    protected set

}

val valWithBackingField: Int
  field = 1
  get

val test_valWithBackingField: KProperty0<Int>
  field = ::valWithBackingField
  get

var varWithBackingField: Int
  field = 1
  get
  set

val test_varWithBackingField: KMutableProperty0<Int>
  field = ::varWithBackingField
  get

var varWithBackingFieldAndAccessors: Int
  field = 1
  get(): Int {
    return #varWithBackingFieldAndAccessors
  }
  set(value: Int) {
    #varWithBackingFieldAndAccessors = value
  }

val test_varWithBackingFieldAndAccessors: KMutableProperty0<Int>
  field = ::varWithBackingFieldAndAccessors
  get

val valWithAccessors: Int
  get(): Int {
    return 1
  }

val test_valWithAccessors: KProperty0<Int>
  field = ::valWithAccessors
  get

var varWithAccessors: Int
  get(): Int {
    return 1
  }
  set(value: Int) {
  }

val test_varWithAccessors: KMutableProperty0<Int>
  field = ::varWithAccessors
  get

val delegatedVal: Int /* by */
  field = Delegate
  get(): Int {
    return #delegatedVal$delegate.getValue(thisRef = null, kProp = ::delegatedVal)
  }

val test_delegatedVal: KProperty0<Int>
  field = ::delegatedVal
  get

var delegatedVar: Int /* by */
  field = Delegate
  get(): Int {
    return #delegatedVar$delegate.getValue(thisRef = null, kProp = ::delegatedVar)
  }
  set(<set-?>: Int) {
    return #delegatedVar$delegate.setValue(thisRef = null, kProp = ::delegatedVar, value = <set-?>)
  }

val test_delegatedVar: KMutableProperty0<Int>
  field = ::delegatedVar
  get

val constVal: Int
  field = 1
  get

val test_constVal: KProperty0<Int>
  field = ::constVal
  get

val test_J_CONST: KProperty0<Int>
  field = J::CONST
  get

val test_J_nonConst: KMutableProperty0<Int>
  field = J::nonConst
  get

val test_varWithPrivateSet: KProperty1<C, Int>
  field = C::varWithPrivateSet
  get

val test_varWithProtectedSet: KProperty1<C, Int>
  field = C::varWithProtectedSet
  get
