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

  }

}

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

  }

  override fun add(element: String): Boolean {
    return true
  }

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

}

open class KotlinClass : HashSet<String> {
  constructor() /* primary */ {
    super/*HashSet*/<String>()
    /* <init>() */

  }

}

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