Files
kotlin-fork/compiler/testData/codegen/box/boxingOptimization/checkcastAndInstanceOf.kt
T
Ilya Matveev a5e4e0284e Mute some box tests for native backend
This patch mutes the following test categories:
   * Tests with java dependencies (System class,
     java stdlib, jvm-oriented annotations etc).
   * Coroutines tests.
   * Reflection tests.
   * Tests with an inheritance from the standard
     collections.
2017-03-10 19:59:37 +03:00

27 lines
530 B
Kotlin
Vendored

// TODO: muted automatically, investigate should it be ran for JS or not
// IGNORE_BACKEND: JS, NATIVE
// WITH_RUNTIME
import kotlin.test.assertEquals
inline fun <R, T> foo(x : R, y : R, block : (R) -> T) : T {
val a = x is Number
val b = x is Object
val b1 = x as Object
if (a && b) {
return block(x)
} else {
return block(y)
}
}
fun box() : String {
assertEquals(1, foo(1, 2) { x -> x as Int })
assertEquals("def", foo("abc", "def") { x -> x as String })
return "OK"
}