[FIR] Don't call componentX for anonymous destructuring entry

This commit is contained in:
Mikhail Glukhikh
2021-01-13 15:00:00 +03:00
parent 795bd26eaf
commit 6cee4e968e
19 changed files with 37 additions and 34 deletions
@@ -7,7 +7,7 @@ fun useDeclaredVariables() {
}
fun checkersShouldRun() {
<!UNRESOLVED_REFERENCE, UNRESOLVED_REFERENCE, UNRESOLVED_REFERENCE!>for ((<!UNRESOLVED_REFERENCE!>@A a<!>, <!UNRESOLVED_REFERENCE!>_<!>)<!SYNTAX!><!>) {
<!UNRESOLVED_REFERENCE, UNRESOLVED_REFERENCE, UNRESOLVED_REFERENCE!>for ((<!UNRESOLVED_REFERENCE!>@A a<!>, _)<!SYNTAX!><!>) {
}<!>
}
@@ -5,7 +5,7 @@ fun useDeclaredVariables() {
}
fun checkersShouldRun() {
val (<!UNRESOLVED_REFERENCE!>@A a<!>, <!UNRESOLVED_REFERENCE!>_<!>) = <!UNRESOLVED_REFERENCE!>unresolved<!>
val (<!UNRESOLVED_REFERENCE!>@A a<!>, _) = <!UNRESOLVED_REFERENCE!>unresolved<!>
}
annotation class A
@@ -5,7 +5,7 @@ fun useDeclaredVariables() {
}
fun checkersShouldRun() {
<!INITIALIZER_REQUIRED_FOR_DESTRUCTURING_DECLARATION!>val (<!UNRESOLVED_REFERENCE!>@A a<!>, <!UNRESOLVED_REFERENCE!>_<!>)<!>
<!INITIALIZER_REQUIRED_FOR_DESTRUCTURING_DECLARATION!>val (<!UNRESOLVED_REFERENCE!>@A a<!>, _)<!>
}
annotation class A
@@ -11,31 +11,31 @@ class C {
fun test() {
for ((x, _) in C()) {
foo(x, _)
foo(x, <!UNRESOLVED_REFERENCE!>_<!>)
}
for ((_, y) in C()) {
foo(_, y)
foo(<!UNRESOLVED_REFERENCE!>_<!>, y)
}
for ((_, _) in C()) {
<!INAPPLICABLE_CANDIDATE!>foo<!>(_, _)
foo(<!UNRESOLVED_REFERENCE!>_<!>, <!UNRESOLVED_REFERENCE!>_<!>)
}
for ((_ : Int, _ : String) in C()) {
<!INAPPLICABLE_CANDIDATE!>foo<!>(_, _)
foo(<!UNRESOLVED_REFERENCE!>_<!>, <!UNRESOLVED_REFERENCE!>_<!>)
}
for ((_ : String, _ : Int) in C()) {
<!INAPPLICABLE_CANDIDATE!>foo<!>(_, _)
foo(<!UNRESOLVED_REFERENCE!>_<!>, <!UNRESOLVED_REFERENCE!>_<!>)
}
val (x, _) = A()
val (_, y) = A()
foo(x, y)
<!INAPPLICABLE_CANDIDATE!>foo<!>(x, _)
foo(_, y)
foo(x, <!UNRESOLVED_REFERENCE!>_<!>)
foo(<!UNRESOLVED_REFERENCE!>_<!>, y)
val (`_`, z) = A()
@@ -8,39 +8,39 @@ fun foo(block: (A) -> Unit) { }
fun bar() {
foo { (_, b) ->
_.hashCode()
<!UNRESOLVED_REFERENCE!>_<!>.<!UNRESOLVED_REFERENCE!>hashCode<!>()
b checkType { _<String>() }
}
foo { (a, _) ->
a checkType { _<Int>() }
_.hashCode()
<!UNRESOLVED_REFERENCE!>_<!>.<!UNRESOLVED_REFERENCE!>hashCode<!>()
}
foo { (_, _) ->
_.hashCode()
<!UNRESOLVED_REFERENCE!>_<!>.<!UNRESOLVED_REFERENCE!>hashCode<!>()
}
foo { (_: Int, b: String) ->
_.hashCode()
<!UNRESOLVED_REFERENCE!>_<!>.<!UNRESOLVED_REFERENCE!>hashCode<!>()
b checkType { _<String>() }
}
foo { (a: Int, _: String) ->
a checkType { _<Int>() }
_.hashCode()
<!UNRESOLVED_REFERENCE!>_<!>.<!UNRESOLVED_REFERENCE!>hashCode<!>()
}
foo { (_: Int, _: String) ->
_.hashCode()
<!UNRESOLVED_REFERENCE!>_<!>.<!UNRESOLVED_REFERENCE!>hashCode<!>()
}
foo { (_, _): A ->
_.hashCode()
<!UNRESOLVED_REFERENCE!>_<!>.<!UNRESOLVED_REFERENCE!>hashCode<!>()
}
foo { (`_`, _) ->
_ checkType { <!INAPPLICABLE_CANDIDATE!>_<!><Int>() }
_ checkType { _<Int>() }
}
foo { (_, `_`) ->
@@ -52,12 +52,12 @@ fun bar() {
}
foo { (_: String, b) ->
_.hashCode()
<!UNRESOLVED_REFERENCE!>_<!>.<!UNRESOLVED_REFERENCE!>hashCode<!>()
b checkType { _<String>() }
}
foo { (_, b): B ->
_.hashCode()
<!UNRESOLVED_REFERENCE!>_<!>.<!UNRESOLVED_REFERENCE!>hashCode<!>()
b checkType { <!INAPPLICABLE_CANDIDATE!>_<!><Short>() }
}
}