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

  }

}

class B : Java1 {
  override val size: Int
    field = size
    override get

  constructor(size: Int) /* primary */ {
    super/*Java1*/()
    /* <init>() */

  }

  override operator fun get(key: Void?): Void? {
    return null
  }

  override fun put(key: Void?, value: Void?): Void? {
    return null
  }

}

fun test(a: A, b: B) {
  a.<get-size>() /*~> Unit */
  a.get(key = null) /*~> Unit */
  a.remove(key = null) /*~> Unit */
  a.put(key = null, value = null) /*~> Unit */
  a.set<@FlexibleNullability Void?, @FlexibleNullability Void?>(key = null, value = null)
  b.<get-size>() /*~> Unit */
  b.get(key = null) /*~> Unit */
  b.remove(key = null) /*~> Unit */
  b.put(key = null, value = null) /*~> Unit */
  b.set<@FlexibleNullability Void?, @FlexibleNullability Void?>(key = null, value = null)
}
