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