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

  }

}

class B : Java1 {
  constructor() /* primary */ {
    super/*Java1*/()
    /* <init>() */

  }

  override fun remove(element: Int?): Boolean {
    return true
  }

  override fun removeAt(index: Int): Int {
    return 1
  }

  override val size: Int
    override get(): Int {
      return 5
    }

}

fun test(a: A, b: B) {
  a.<get-size>() /*~> Unit */
  a.add(element = null) /*~> Unit */
  a.add(element = 1) /*~> Unit */
  a.add(index = 2, element = 2)
  a.get(index = 1) /*~> Unit */
  a.remove(element = 1) /*~> Unit */
  a.removeAt(p0 = 1) /*~> Unit */
  b.<get-size>() /*~> Unit */
  b.add(element = null) /*~> Unit */
  b.add(element = 2) /*~> Unit */
  b.add(index = 2, element = 2)
  b.get(index = 1) /*~> Unit */
  b.remove(element = null) /*~> Unit */
  b.removeAt(index = 1) /*~> Unit */
}
