FIR: introduce & use REFERENCE_BY_QUALIFIER positioning strategy

This commit is contained in:
Mikhail Glukhikh
2021-02-18 11:54:22 +03:00
parent 0accaf0f30
commit 34c90aab3b
138 changed files with 415 additions and 372 deletions
@@ -7,5 +7,5 @@ fun Int.invoke(a: Any, i: Int) {}
fun foo(i: Int) {
<!AMBIGUITY!>i<!>(1, 1)
<!AMBIGUITY!>5(1, 2)<!>
<!AMBIGUITY!>5<!>(1, 2)
}
@@ -6,5 +6,5 @@ class My {
fun My.foo(i: Int) {
<!HIDDEN!>i<!>("")
<!HIDDEN!>1("")<!>
<!HIDDEN!>1<!>("")
}
@@ -7,5 +7,5 @@ fun test1(f: String.() -> Unit) {
fun test2(f: (Int) -> Int) {
1.<!UNRESOLVED_REFERENCE!>f<!>(2)
2.(<!UNRESOLVED_REFERENCE!>f<!>)(2)
2.<!UNRESOLVED_REFERENCE!>(f)<!>(2)
}
@@ -10,5 +10,5 @@ fun foo(s: String, ai: A<Int>) {
<!INAPPLICABLE_CANDIDATE!>s<!>(ai)
<!INAPPLICABLE_CANDIDATE!>""(ai)<!>
<!INAPPLICABLE_CANDIDATE!>""<!>(ai)
}
@@ -1,5 +1,5 @@
// !DIAGNOSTICS: -UNUSED_EXPRESSION
fun foo(i: Int) {
<!UNRESOLVED_REFERENCE!>i<!>()
<!UNRESOLVED_REFERENCE!>1()<!>
<!UNRESOLVED_REFERENCE!>1<!>()
}
@@ -6,5 +6,5 @@ operator fun String.invoke(i: Int) {}
fun foo(s: String?) {
<!UNSAFE_IMPLICIT_INVOKE_CALL!>s<!>(1)
<!UNSAFE_IMPLICIT_INVOKE_CALL!>(s ?: null)(1)<!>
<!UNSAFE_IMPLICIT_INVOKE_CALL!>(s ?: null)<!>(1)
}
@@ -1,17 +1,17 @@
// !WITH_NEW_INFERENCE
fun test1() {
1. <!UNRESOLVED_REFERENCE!>(fun String.(i: Int) = i )(1)<!>
1.<!UNRESOLVED_REFERENCE!>(label@ fun String.(i: Int) = i )(1)<!>
1. <!UNRESOLVED_REFERENCE!>(fun String.(i: Int) = i )<!>(1)
1.<!UNRESOLVED_REFERENCE!>(label@ fun String.(i: Int) = i )<!>(1)
}
fun test2(f: String.(Int) -> Unit) {
11.(<!INAPPLICABLE_CANDIDATE!>f<!>)(1)
11.(<!INAPPLICABLE_CANDIDATE!>f<!>)()
11.<!INAPPLICABLE_CANDIDATE!>(f)<!>(1)
11.<!INAPPLICABLE_CANDIDATE!>(f)<!>()
}
fun test3() {
fun foo(): String.(Int) -> Unit = {}
1.<!UNRESOLVED_REFERENCE!>(foo())(1)<!>
1.<!UNRESOLVED_REFERENCE!>(foo())<!>(1)
}
@@ -6,5 +6,5 @@ fun String.invoke(i: Int) {}
fun foo(i: Int) {
<!INAPPLICABLE_CANDIDATE!>i<!>(1)
<!INAPPLICABLE_CANDIDATE!>1(1)<!>
<!INAPPLICABLE_CANDIDATE!>1<!>(1)
}