Files
kotlin-fork/compiler/testData/codegen/box/when/whenSubjectVariable/ieee754EqualityWithSmartCast.kt
T
2019-11-19 11:00:09 +03:00

32 lines
653 B
Kotlin
Vendored

// !LANGUAGE: +VariableDeclarationInWhenSubject +ProperIeee754Comparisons
// IGNORE_BACKEND_FIR: JVM_IR
val az: Any = -0.0
val afz: Any = -0.0f
fun box(): String {
val y = az
when (y) {
!is Double -> throw AssertionError()
0.0 -> {}
else -> throw AssertionError()
}
val yy = afz
when (yy) {
!is Float -> throw AssertionError()
0.0 -> {}
else -> throw AssertionError()
}
testDoubleAsUpperBound(-0.0)
return "OK"
}
fun <T: Double> testDoubleAsUpperBound(v: T): Boolean {
return when (val a = v*v) {
0.0 -> true
else -> throw AssertionError()
}
}