// !DIAGNOSTICS: -DEBUG_INFO_AUTOCAST class Foo { fun foo(a: Foo): Foo = a } fun main(args : Array) { val x: Foo? = null val y: Foo? = null x.foo(y) x!!.foo(y) x.foo(y!!) x!!.foo(y!!) val a: Foo? = null val b: Foo? = null val c: Foo? = null a.foo(b.foo(c)) a!!.foo(b.foo(c)) a.foo(b!!.foo(c)) a!!.foo(b!!.foo(c)) a.foo(b.foo(c!!)) a!!.foo(b.foo(c!!)) a.foo(b!!.foo(c!!)) a!!.foo(b!!.foo(c!!)) val z: Foo? = null z!!.foo(z!!) }