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

  }

}

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

  }

}

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

  }

}

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

  }

}

class E : Java4 {
  constructor() /* primary */ {
    super/*Java4*/()
    /* <init>() */

  }

}

class F : Java5 {
  constructor() /* primary */ {
    super/*Java5*/()
    /* <init>() */

  }

}

interface KotlinInterface {
  abstract fun toSet(elements: Collection<String>): Set<String?>

}

fun test(a: A, b: B, c: C, d: D, e: E, f: F) {
  val k: Set<String> = a.toSet(elements = mutableListOf<String>(elements = ["1"])) /*!! @FlexibleMutability MutableSet<@EnhancedNullability @NotNull String> */
  val k2: Set<String> = b.toSet(elements = mutableListOf<String>(elements = ["1"])) /*!! @FlexibleMutability MutableSet<@EnhancedNullability @NotNull String> */
  val k3: Set<String> = c.toSet(elements = mutableListOf<String>(elements = ["1"])) /*!! @FlexibleMutability MutableSet<@EnhancedNullability @NotNull String> */
  val k4: Set<String> = d.toSet(elements = mutableListOf<String>(elements = ["1"])) /*!! @FlexibleMutability MutableSet<@EnhancedNullability @NotNull String> */
  val k5: Set<String> = e.toSet(elements = mutableListOf<String>(elements = ["1"])) /*!! @FlexibleMutability MutableSet<@EnhancedNullability @NotNull String> */
  val k6: Set<String> = f.toSet(elements = mutableListOf<String>(elements = ["1"])) /*!! @FlexibleMutability MutableSet<@EnhancedNullability String> */
}
