// !CHECK_TYPE fun foo(x: Number, y: Int) { when (x) { x as Int -> checkSubtype(x) y -> {} else -> {} } checkSubtype(x) } fun bar(x: Number) { when (x) { x as Int -> checkSubtype(x) else -> {} } checkSubtype(x) } fun whenWithoutSubject(x: Number) { when { (x as Int) == 42 -> checkSubtype(x) else -> {} } checkSubtype(x) }