[FIR] Fix resolving of single underscore _

Now compiler throws `UNRESOLVED_REFERENCE` here:

```
val boo = { _: Exception -> `_`.stackTrace }
```
This commit is contained in:
Ivan Kochurkin
2021-07-23 18:18:13 +03:00
committed by Space
parent 8bfaa39a5c
commit 1a40164ef0
14 changed files with 87 additions and 44 deletions
@@ -15,7 +15,7 @@ fun foo() {
val x2 = {
val x3 = { y: Int ->
val x4 = { _: Int ->
`_`
<!RESOLVED_TO_UNDERSCORE_NAMED_CATCH_PARAMETER!>`_`<!>
}
<!RESOLVED_TO_UNDERSCORE_NAMED_CATCH_PARAMETER!>`_`<!>
}
@@ -52,7 +52,7 @@ fun foo() {
try {
TODO()
} catch (x: Exception) {
`_`.stackTrace
<!UNRESOLVED_REFERENCE!>`_`<!>.stackTrace
}
}
}
@@ -6,7 +6,7 @@ fun foo() {
try {
TODO()
} catch (_: Exception) {
`_`.stackTrace
<!UNRESOLVED_REFERENCE!>`_`<!>.stackTrace
}
try {
TODO()
@@ -15,22 +15,22 @@ fun foo() {
val x2 = {
val x3 = { y: Int ->
val x4 = { _: Int ->
`_`
<!UNRESOLVED_REFERENCE!>`_`<!>
}
`_`
<!UNRESOLVED_REFERENCE!>`_`<!>
}
`_`
<!UNRESOLVED_REFERENCE!>`_`<!>
10
}
fun bar(x: Exception = `_`) {}
fun bar(x: Exception = <!UNRESOLVED_REFERENCE!>`_`<!>) {}
class Bar(`_`: Exception = <!UNINITIALIZED_PARAMETER!>`_`<!>) {
inner class Bar2(x: Exception = `_`) { }
inner class Bar2(x: Exception = <!UNRESOLVED_REFERENCE!>`_`<!>) { }
}
}
} catch (_: Exception) {
`_`.stackTrace
val y1 = <!UNDERSCORE_USAGE_WITHOUT_BACKTICKS!>_<!>
val y2 = (`_`)
<!UNRESOLVED_REFERENCE!>`_`<!>.stackTrace
val y1 = <!UNDERSCORE_USAGE_WITHOUT_BACKTICKS, UNRESOLVED_REFERENCE!>_<!>
val y2 = (<!UNRESOLVED_REFERENCE!>`_`<!>)
}
try {
TODO()
@@ -38,7 +38,7 @@ fun foo() {
try {
TODO()
} catch (x: Exception) {
`_`.stackTrace
<!UNRESOLVED_REFERENCE!>`_`<!>.stackTrace
}
}
val boo1 = { `_`: Exception ->
@@ -52,7 +52,7 @@ fun foo() {
try {
TODO()
} catch (x: Exception) {
`_`.stackTrace
<!UNRESOLVED_REFERENCE!>`_`<!>.stackTrace
}
}
}