// !CHECK_TYPE open class Outer { inner open class Inner { inner class Inner2 { } } } class DerivedOuter : Outer() { inner class DerivedInner : Inner() { fun foo(): Inner2 = null!! } } fun foo() { DerivedOuter().DerivedInner().foo() checkType { _.Inner.Inner2>() } }