package foo

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

  }

  var prop: Int
    field = 0
    get
    set

}

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

  }

  var prop: Int
    field = 0
    get
    set

}

val array: Array<Int>
  field = arrayOf<Int>(elements = [0])
  get

fun <T : Any?> id(t: T): T {
  return t
}

fun runMe() {
  val a: A = A()
  id<A>(t = a).<set-prop>(<set-?> = 10)
  { // BLOCK
    val tmp_0: A = id<A>(t = a)
    tmp_0.<set-prop>(<set-?> = tmp_0.<get-prop>().plus(other = 20))
  }
  { // BLOCK
    val tmp_1: A = id<A>(t = a)
    tmp_1.<set-prop>(<set-?> = tmp_1.<get-prop>().minus(other = 20))
  }
  { // BLOCK
    val tmp_2: A = id<A>(t = a)
    tmp_2.<set-prop>(<set-?> = tmp_2.<get-prop>().times(other = 2))
  }
  { // BLOCK
    val tmp_3: A = id<A>(t = a)
    tmp_3.<set-prop>(<set-?> = tmp_3.<get-prop>().div(other = 5))
  }
  { // BLOCK
    val tmp_4: A = id<A>(t = a)
    tmp_4.<set-prop>(<set-?> = tmp_4.<get-prop>().rem(other = 3))
  }
  { // BLOCK
    val tmp_5: A = id<A>(t = a)
    { // BLOCK
      val tmp_6: Int = tmp_5.<get-prop>()
      tmp_5.<set-prop>(<set-?> = tmp_6.inc())
      tmp_6
    }
  } /*~> Unit */
  { // BLOCK
    val tmp_7: A = id<A>(t = a)
    { // BLOCK
      val tmp_8: Int = tmp_7.<get-prop>()
      tmp_7.<set-prop>(<set-?> = tmp_8.dec())
      tmp_8
    }
  } /*~> Unit */
  { // BLOCK
    val tmp_9: A = id<A>(t = a)
    { // BLOCK
      tmp_9.<set-prop>(<set-?> = tmp_9.<get-prop>().inc())
      tmp_9.<get-prop>()
    }
  } /*~> Unit */
  { // BLOCK
    val tmp_10: A = id<A>(t = a)
    { // BLOCK
      tmp_10.<set-prop>(<set-?> = tmp_10.<get-prop>().dec())
      tmp_10.<get-prop>()
    }
  } /*~> Unit */
  { // BLOCK
    val tmp_11: B = B
    { // BLOCK
      val tmp_12: Int = tmp_11.<get-prop>()
      tmp_11.<set-prop>(<set-?> = tmp_12.inc())
      tmp_12
    }
  } /*~> Unit */
  { // BLOCK
    val tmp_13: B = B
    { // BLOCK
      val tmp_14: Int = tmp_13.<get-prop>()
      tmp_13.<set-prop>(<set-?> = tmp_14.dec())
      tmp_14
    }
  } /*~> Unit */
  { // BLOCK
    val tmp_15: B = B
    { // BLOCK
      tmp_15.<set-prop>(<set-?> = tmp_15.<get-prop>().inc())
      tmp_15.<get-prop>()
    }
  } /*~> Unit */
  { // BLOCK
    val tmp_16: B = B
    { // BLOCK
      tmp_16.<set-prop>(<set-?> = tmp_16.<get-prop>().dec())
      tmp_16.<get-prop>()
    }
  } /*~> Unit */
  id<Array<Int>>(t = <get-array>()).set(index = 0, value = 10)
  { // BLOCK
    val tmp_17: Array<Int> = id<Array<Int>>(t = <get-array>())
    val tmp_18: Int = 0
    tmp_17.set(index = tmp_18, value = tmp_17.get(index = tmp_18).plus(other = 20))
  }
  { // BLOCK
    val tmp_19: Array<Int> = id<Array<Int>>(t = <get-array>())
    val tmp_20: Int = 0
    tmp_19.set(index = tmp_20, value = tmp_19.get(index = tmp_20).minus(other = 20))
  }
  { // BLOCK
    val tmp_21: Array<Int> = id<Array<Int>>(t = <get-array>())
    val tmp_22: Int = 0
    tmp_21.set(index = tmp_22, value = tmp_21.get(index = tmp_22).times(other = 2))
  }
  { // BLOCK
    val tmp_23: Array<Int> = id<Array<Int>>(t = <get-array>())
    val tmp_24: Int = 0
    tmp_23.set(index = tmp_24, value = tmp_23.get(index = tmp_24).div(other = 5))
  }
  { // BLOCK
    val tmp_25: Array<Int> = id<Array<Int>>(t = <get-array>())
    val tmp_26: Int = 0
    tmp_25.set(index = tmp_26, value = tmp_25.get(index = tmp_26).rem(other = 3))
  }
  { // BLOCK
    val tmp_27: Array<Int> = id<Array<Int>>(t = <get-array>())
    val tmp_28: Int = 0
    val tmp_29: Int = tmp_27.get(index = tmp_28)
    tmp_27.set(index = tmp_28, value = tmp_29.inc())
    tmp_29
  } /*~> Unit */
  { // BLOCK
    val tmp_30: Array<Int> = id<Array<Int>>(t = <get-array>())
    val tmp_31: Int = 0
    val tmp_32: Int = tmp_30.get(index = tmp_31)
    tmp_30.set(index = tmp_31, value = tmp_32.dec())
    tmp_32
  } /*~> Unit */
  { // BLOCK
    val tmp_33: Array<Int> = id<Array<Int>>(t = <get-array>())
    val tmp_34: Int = 0
    tmp_33.set(index = tmp_34, value = tmp_33.get(index = tmp_34).inc())
    tmp_33.get(index = tmp_34)
  } /*~> Unit */
  { // BLOCK
    val tmp_35: Array<Int> = id<Array<Int>>(t = <get-array>())
    val tmp_36: Int = 0
    tmp_35.set(index = tmp_36, value = tmp_35.get(index = tmp_36).dec())
    tmp_35.get(index = tmp_36)
  } /*~> Unit */
  { // BLOCK
    val tmp_37: Array<Int> = <get-array>()
    val tmp_38: Int = 0
    val tmp_39: Int = tmp_37.get(index = tmp_38)
    tmp_37.set(index = tmp_38, value = tmp_39.inc())
    tmp_39
  } /*~> Unit */
  { // BLOCK
    val tmp_40: Array<Int> = <get-array>()
    val tmp_41: Int = 0
    val tmp_42: Int = tmp_40.get(index = tmp_41)
    tmp_40.set(index = tmp_41, value = tmp_42.dec())
    tmp_42
  } /*~> Unit */
  { // BLOCK
    val tmp_43: Array<Int> = <get-array>()
    val tmp_44: Int = 0
    tmp_43.set(index = tmp_44, value = tmp_43.get(index = tmp_44).inc())
    tmp_43.get(index = tmp_44)
  } /*~> Unit */
  { // BLOCK
    val tmp_45: Array<Int> = <get-array>()
    val tmp_46: Int = 0
    tmp_45.set(index = tmp_46, value = tmp_45.get(index = tmp_46).dec())
    tmp_45.get(index = tmp_46)
  } /*~> Unit */
}
