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

  }

}

operator fun A.get(i: Int, a: Int = 1, b: Int = 2, c: Int = 3, d: Int = 4): Int {
  return 0
}

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

fun testSimpleAssignment(a: A) {
  a.set(i = 1, v = 0)
}

fun testPostfixIncrement(a: A): Int {
  return { // BLOCK
    val tmp_0: A = a
    val tmp_1: Int = 1
    val tmp_2: Int = tmp_0.get(i = tmp_1)
    tmp_0.set(i = tmp_1, v = tmp_2.inc())
    tmp_2
  }
}

fun testCompoundAssignment(a: A) {
  { // BLOCK
    val tmp_3: A = a
    val tmp_4: Int = 1
    tmp_3.set(i = tmp_4, v = tmp_3.get(i = tmp_4).plus(other = 10))
  }
}
