val p: Any? field = null get fun foo(): Any? { return null } fun test1(a: Any?, b: Any): Any { return { // BLOCK val tmp0_elvis_lhs: Any? = a when { EQEQ(arg0 = tmp0_elvis_lhs, arg1 = null) -> b else -> tmp0_elvis_lhs } } } fun test2(a: String?, b: Any): Any { return { // BLOCK val tmp0_elvis_lhs: String? = a when { EQEQ(arg0 = tmp0_elvis_lhs, arg1 = null) -> b else -> tmp0_elvis_lhs } } } fun test3(a: Any?, b: Any?): String { when { b !is String -> return "" } when { a !is String? -> return "" } return { // BLOCK val tmp0_elvis_lhs: String? = a /*as String? */ when { EQEQ(arg0 = tmp0_elvis_lhs, arg1 = null) -> b /*as String */ else -> tmp0_elvis_lhs } } } fun test4(x: Any): Any { return { // BLOCK val tmp0_elvis_lhs: Any? = () when { EQEQ(arg0 = tmp0_elvis_lhs, arg1 = null) -> x else -> tmp0_elvis_lhs } } } fun test5(x: Any): Any { return { // BLOCK val tmp0_elvis_lhs: Any? = foo() when { EQEQ(arg0 = tmp0_elvis_lhs, arg1 = null) -> x else -> tmp0_elvis_lhs } } }