Files
2021-10-06 09:23:50 +00:00

36 lines
751 B
Kotlin
Vendored

// KJS_WITH_FULL_RUNTIME
// EXPECTED_REACHABLE_NODES: 1682
package foo
// CHECK_NOT_CALLED_IN_SCOPE: function=test scope=box
class A(val x: Int)
class B(val x: Int)
inline fun <reified T> test(vararg xs: Any): List<T> {
val ts = arrayListOf<T>()
for (x in xs) {
if (x is T) {
ts.add(x)
}
}
return ts
}
fun box(): String {
val a1 = A(1)
val b2 = B(2)
val a3 = A(3)
val b4 = B(4)
assertEquals(listOf(a1), test<A>(a1, b2), "test(a1, b2)")
assertEquals(listOf(b2, b4), test<B>(a1, b2, a3, b4), "test<B>(a1, b2, a3, b4)")
val objects = arrayOf(a1, b2)
assertEquals(listOf(b2, b4), test<B>(a1, a3, *objects, a3, b4), "test<B>(a1, a3, *objects, a3, b4)")
return "OK"
}