abstract class B : Java1, Java2 {
  constructor() /* primary */ {
    super/*Any*/()
    /* <init>() */

  }

}

class C : Java1, Java2 {
  override var a: Int
    field = a
    override get
    override set

  constructor(a: Int) /* primary */ {
    super/*Any*/()
    /* <init>() */

  }

  override fun bar(o: Any?) {
  }

  override fun bar(o: Int) {
  }

  override fun foo(): Int {
    return 1
  }

}

abstract class D : Java1, Java2 {
  constructor() /* primary */ {
    super/*Any*/()
    /* <init>() */

  }

  override fun bar(o: Int) {
  }

  override fun foo(): Int {
    return 1
  }

}

abstract class E : Java1, Java2 {
  constructor() /* primary */ {
    super/*Any*/()
    /* <init>() */

  }

  override fun bar(o: Any) {
  }

}

abstract class F : Java2, Kotlin {
  constructor() /* primary */ {
    super/*Any*/()
    /* <init>() */

  }

}

abstract class G : Java2, Kotlin {
  override var a: Int
    field = a
    override get
    override set

  constructor(a: Int) /* primary */ {
    super/*Any*/()
    /* <init>() */

  }

  override fun foo(): Int {
    return 1
  }

}

class H : Java2, Kotlin {
  override var a: Int
    field = a
    override get
    override set

  constructor(a: Int) /* primary */ {
    super/*Any*/()
    /* <init>() */

  }

  override fun bar(o: Any) {
  }

  override fun bar(o: Int) {
  }

  override fun foo(): Int {
    return 1
  }

}

abstract class I : Java3, Kotlin2 {
  constructor() /* primary */ {
    super/*Any*/()
    /* <init>() */

  }

}

class J : Java3, Kotlin2 {
  constructor() /* primary */ {
    super/*Any*/()
    /* <init>() */

  }

  override fun bar(o: Any?) {
  }

  override fun bar(o: Int) {
  }

  override fun foo(): Int {
    return 1
  }

}

abstract class L : Java3, Kotlin2 {
  constructor() /* primary */ {
    super/*Any*/()
    /* <init>() */

  }

  override fun bar(o: Any?) {
  }

}

abstract class M : Java3, Java4 {
  constructor() /* primary */ {
    super/*Any*/()
    /* <init>() */

  }

}

class N : Java3, Java4 {
  constructor() /* primary */ {
    super/*Any*/()
    /* <init>() */

  }

  override fun bar(o: Any?) {
  }

  override fun bar(o: Int) {
  }

  override fun foo(): Int {
    return 1
  }

}

abstract class O : Java3, Java4 {
  constructor() /* primary */ {
    super/*Any*/()
    /* <init>() */

  }

  override fun bar(o: Int) {
  }

  override fun foo(): Int {
    return 1
  }

}

interface A {
  abstract fun bar(o: Int)

  abstract fun foo(): Int

  abstract var a: Int
    abstract get
    abstract set

}

interface Kotlin {
  abstract fun bar(o: Any)

  abstract fun foo(): Any

}

interface Kotlin2 : Java1 {
}

fun test(b: B, c: C, d: D, e: E, f: F, g: G, h: H, i: I, j: J, l: L, m: M, n: N, o: O) {
  val k: Int = b.<get-a>()
  b.<set-a>(<set-?> = 1)
  val k2: Unit = b.bar(o = 1)
  val k3: Unit = b.bar(o = "")
  val k4: Unit = b.bar(o = null)
  val k5: Int = b.foo()
  val k6: Int = c.<get-a>()
  c.<set-a>(<set-?> = 1)
  val k7: Unit = c.bar(o = 1)
  val k8: Unit = c.bar(o = "")
  val k9: Unit = c.bar(o = null)
  val k10: Int = c.foo()
  val k11: Int = d.<get-a>()
  d.<set-a>(<set-?> = 1)
  val k12: Unit = d.bar(o = 1)
  val k13: Unit = d.bar(o = "")
  val k14: Unit = d.bar(o = null)
  val k15: Int = d.foo()
  val k16: Int = e.<get-a>()
  e.<set-a>(<set-?> = 1)
  val k17: Unit = e.bar(o = 1)
  val k18: Unit = e.bar(o = "")
  val k19: Int = e.foo()
  val k20: Int = f.<get-a>()
  f.<set-a>(<set-?> = 1)
  val k21: Unit = f.bar(o = 1)
  val k22: Unit = f.bar(o = "")
  val k23: Int = f.foo()
  val k24: Int = g.<get-a>()
  g.<set-a>(<set-?> = 1)
  val k25: Unit = g.bar(o = 1)
  val k26: Unit = g.bar(o = "")
  val k27: Int = f.foo()
  val k28: Int = h.<get-a>()
  h.<set-a>(<set-?> = 1)
  val k29: Unit = h.bar(o = 1)
  val k30: Unit = h.bar(o = "")
  val k31: Int = h.foo()
  val k32: Unit = i.bar(o = 1)
  val k33: Unit = i.bar(o = "")
  val k34: Unit = i.bar(o = null)
  val k35: Int = i.foo()
  val k36: Unit = j.bar(o = 1)
  val k37: Unit = j.bar(o = "")
  val k38: Unit = j.bar(o = null)
  val k39: Int = j.foo()
  val k40: Unit = l.bar(o = 1)
  val k41: Unit = l.bar(o = "")
  val k42: Unit = l.bar(o = null)
  val k43: Int = l.foo()
  val k44: Unit = m.bar(o = 1)
  val k45: Unit = m.bar(o = "")
  val k46: Unit = m.bar(o = null)
  val k47: Int = m.foo()
  val k48: Unit = n.bar(o = 1)
  val k49: Unit = n.bar(o = "")
  val k50: Unit = n.bar(o = null)
  val k51: Int = n.foo()
  val k52: Unit = o.bar(o = 1)
  val k53: Unit = o.bar(o = "")
  val k54: Unit = o.bar(o = null)
  val k55: Int = o.foo()
}
