23 lines
539 B
Kotlin
Vendored
23 lines
539 B
Kotlin
Vendored
// !WITH_NEW_INFERENCE
|
|
class Data<T>(val x: T, val y: T)
|
|
|
|
operator fun <T> Data<T>.component1() = x
|
|
|
|
operator fun <T> Data<T>.component2() = y
|
|
|
|
fun foo(): Int {
|
|
val d: Data<Int>? = null
|
|
// An error must be here
|
|
val (<!INAPPLICABLE_CANDIDATE!>x<!>, <!INAPPLICABLE_CANDIDATE!>y<!>) = d
|
|
return x + y
|
|
}
|
|
|
|
data class NormalData<T>(val x: T, val y: T)
|
|
|
|
fun bar(): Int {
|
|
val d: NormalData<Int>? = null
|
|
// An error must be here
|
|
val (<!INAPPLICABLE_CANDIDATE!>x<!>, <!INAPPLICABLE_CANDIDATE!>y<!>) = d
|
|
return x + y
|
|
}
|