fun test(x: T?, y: S, z: T) { x is T x is T? y is T y is S y is T? y is S? z is T z is T? null as T null as T? null as S } class Box inline fun test(x: T?, a: Any) { x is T null as T null as T? a is T a as T a is Box a is Array a as Box a as Array a is Box> a is Array> a as Box> a as Array> } fun foo(x: List, y: List?) { x is List y is List }