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