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

  }

}

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

  }

  override fun foo() {
  }

}

class C : Java1, KotlinInterface {
  constructor() /* primary */ {
    super/*Java1*/()
    /* <init>() */

  }

  override fun foo() {
  }

}

interface KotlinInterface {
  abstract fun foo()

}

fun test(a: A, b: B, c: C) {
  a.foo()
  b.foo()
  c.foo()
}
