[NI] Support implicit invoke calls on parenthesized receivers

This commit is contained in:
Mikhail Zarechenskiy
2018-04-20 08:12:31 +03:00
parent 1e7682afc0
commit 397cc4f772
22 changed files with 211 additions and 64 deletions
@@ -10,5 +10,5 @@ fun foo(s: String, ai: A<Int>) {
<!OI;TYPE_INFERENCE_CONFLICTING_SUBSTITUTIONS!>s<!>(<!NI;TYPE_MISMATCH, NI;TYPE_MISMATCH!>ai<!>)
<!TYPE_INFERENCE_CONFLICTING_SUBSTITUTIONS!>""<!>(ai)
<!OI;TYPE_INFERENCE_CONFLICTING_SUBSTITUTIONS!>""<!>(<!NI;TYPE_MISMATCH, NI;TYPE_MISMATCH!>ai<!>)
}
@@ -1,15 +1,17 @@
// !WITH_NEW_INFERENCE
fun test1() {
<!TYPE_MISMATCH!>1<!>. (fun String.(i: Int) = i )(1)
<!TYPE_MISMATCH!>1<!>.(label@ fun String.(i: Int) = i )(1)
<!OI;TYPE_MISMATCH!>1<!>. <!NI;FUNCTION_EXPECTED!>(fun String.(i: Int) = i )<!>(1)
<!OI;TYPE_MISMATCH!>1<!>.<!NI;FUNCTION_EXPECTED!>(label@ fun String.(i: Int) = i )<!>(1)
}
fun test2(f: String.(Int) -> Unit) {
<!TYPE_MISMATCH!>11<!>.(f)(1)
<!TYPE_MISMATCH!>11<!>.(f)(<!NO_VALUE_FOR_PARAMETER!>)<!>
<!OI;TYPE_MISMATCH!>11<!>.<!NI;FUNCTION_EXPECTED!>(f)<!>(1)
<!OI;TYPE_MISMATCH!>11<!>.<!NI;FUNCTION_EXPECTED!>(f)<!>(<!OI;NO_VALUE_FOR_PARAMETER!>)<!>
}
fun test3() {
fun foo(): String.(Int) -> Unit = {}
<!TYPE_MISMATCH!>1<!>.(foo())(1)
<!OI;TYPE_MISMATCH!>1<!>.<!NI;FUNCTION_EXPECTED!>(foo())<!>(1)
}