Files
kotlin-fork/compiler/testData/codegen/box/ieee754/lessFloat.kt
T
2021-10-02 06:14:35 +00:00

28 lines
818 B
Kotlin
Vendored

// IGNORE_BACKEND: WASM
// WASM_MUTE_REASON: IGNORED_IN_JS
// !LANGUAGE: -ProperIeee754Comparisons
// DONT_TARGET_EXACT_BACKEND: JS_IR
// DONT_TARGET_EXACT_BACKEND: JS_IR_ES6
fun less1(a: Float, b: Float) = a < b
fun less2(a: Float?, b: Float?) = a!! < b!!
fun less3(a: Float?, b: Float?) = a != null && b != null && a < b
fun less4(a: Float?, b: Float?) = if (a is Float && b is Float) a < b else true
fun less5(a: Any?, b: Any?) = if (a is Float && b is Float) a < b else true
fun box(): String {
if (-0.0F < 0.0F) return "fail 0"
if (less1(-0.0F, 0.0F)) return "fail 1"
if (less2(-0.0F, 0.0F)) return "fail 2"
if (less3(-0.0F, 0.0F)) return "fail 3"
if (less4(-0.0F, 0.0F)) return "fail 4"
// Smart casts behavior in 1.2
if (!less5(-0.0F, 0.0F)) return "fail 5"
return "OK"
}