fun testDD(x: Double?, y: Double?): Boolean { return ieee754equals(arg0 = x, arg1 = y) } fun testDF(x: Double?, y: Any?): Boolean { return when { y is Float? -> ieee754equals(arg0 = x, arg1 = { // BLOCK val tmp_0: Float? = y /*as Float? */ when { EQEQ(arg0 = tmp_0, arg1 = null) -> null else -> tmp_0.toDouble() } }) else -> false } } fun testDI(x: Double?, y: Any?): Boolean { return when { y is Int? -> ieee754equals(arg0 = x, arg1 = { // BLOCK val tmp_1: Int? = y /*as Int? */ when { EQEQ(arg0 = tmp_1, arg1 = null) -> null else -> tmp_1.toDouble() } }) else -> false } } fun testDI2(x: Any?, y: Any?): Boolean { return when { when { x is Int? -> y is Double else -> false } -> ieee754equals(arg0 = { // BLOCK val tmp_2: Int? = x /*as Int? */ when { EQEQ(arg0 = tmp_2, arg1 = null) -> null else -> tmp_2.toDouble() } }, arg1 = y /*as Double? */) else -> false } }