blob: 0724bb169b858621219d24fd574e954b25820064 [file]
// IGNORE_BACKEND_K1: ANY
// Ignore Wasm and Native because they fail at runtime KT-67691
// IGNORE_BACKEND_K2: WASM, NATIVE
class In<in K>
fun <E> intersect(vararg x: In<E>): E = null as E
fun box(): String {
val a = intersect(In<Int>(), In<String>()) // K2: INFERRED_TYPE_VARIABLE_INTO_EMPTY_INTERSECTION_WARNING
val b = intersect(In<Int>(), *arrayOf(In<String>())) // K2: INFERRED_TYPE_VARIABLE_INTO_EMPTY_INTERSECTION_WARNING
val c = intersect(x = arrayOf(In<Int>(), In<String>())) // K1: TYPE_MISMATCH error. K2: INFERRED_TYPE_VARIABLE_INTO_EMPTY_INTERSECTION_WARNING
val d = intersect(x = *arrayOf(In<Int>(), In<String>())) // K1: TYPE_MISMATCH error. K2: INFERRED_TYPE_VARIABLE_INTO_EMPTY_INTERSECTION_WARNING
val e = intersect(In<Int>(), *arrayOf(In<String>()), In<Long>()) // K2: INFERRED_TYPE_VARIABLE_INTO_EMPTY_INTERSECTION_WARNING
val f = intersect(*arrayOf(In<Int>()), In<String>(), *arrayOf(In<Long>())) // K2: INFERRED_TYPE_VARIABLE_INTO_EMPTY_INTERSECTION_WARNING
return if (a == null && a == b && b == c && c == d && d == e && e == f) "OK" else "NOT_OK"
}