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

  }

}

operator fun A.get(vararg xs: Int): Int {
  return 0
}

operator fun A.set(i: Int, j: Int, v: Int) {
}

fun testCompoundAssignment(a: A) {
  { // BLOCK
    val tmp_0: A = a
    val tmp_1: Int = 1
    val tmp_2: Int = 2
    set(/* <this> = tmp_0, */ i = tmp_1, j = tmp_2, v = get(/* <this> = tmp_0, */ xs = [tmp_1, tmp_2]).plus(other = 10))
  }
}

fun testPostfixIncrement(a: A): Int {
  return { // BLOCK
    val tmp_3: A = a
    val tmp_4: Int = 1
    val tmp_5: Int = 2
    val tmp_6: Int = get(/* <this> = tmp_3, */ xs = [tmp_4, tmp_5])
    set(/* <this> = tmp_3, */ i = tmp_4, j = tmp_5, v = tmp_6.inc())
    tmp_6
  }
}

fun testSimpleAssignment(a: A) {
  set(/* <this> = a, */ i = 1, j = 2, v = 0)
}

