// !WITH_NEW_INFERENCE class Data(val x: T, val y: T) operator fun Data.component1() = x operator fun Data.component2() = y fun foo(): Int { val d: Data? = null // An error must be here val (x, y) = d return x + y } data class NormalData(val x: T, val y: T) fun bar(): Int { val d: NormalData? = null // An error must be here val (x, y) = d return x + y }