// FIR_DUMP // ISSUE: KT-55804 fun foo() { val x: String? x = materialize()!! // Should be treated as non-nullable assignment x.length // Should be allowed } fun materialize(): E = TODO() fun test(f: F) = f!! fun main() { test("").length test(null).length // `.length` should be allowed because return type of "test" should be inferred to `F & Any` }