[NI] Map vararg to Array if it's resolved against type variable

While this behavior is questionable, it's consistent with OI and can
 be changed in future

 #KT-36201 Fixed
This commit is contained in:
Mikhail Zarechenskiy
2020-01-28 12:58:17 +03:00
parent 35f6810b58
commit e3b6104489
11 changed files with 111 additions and 4 deletions
@@ -0,0 +1,17 @@
// !LANGUAGE: +NewInference
// !DIAGNOSTICS: -UNUSED_PARAMETER
fun foo(vararg ints: Int) {}
fun test(i: IntArray) {
myLet(i, ::foo)
myLet(::foo)
myLet<Int>(<!TYPE_MISMATCH!>::foo<!>)
myLet<IntArray>(::foo)
myLetExplicit1(::foo)
myLetExplicit2(::foo)
}
fun <T> myLet(t: T, block: (T) -> Unit) {}
fun <T> myLet(block: (T) -> Unit) {}
fun myLetExplicit1(block: (Int) -> Unit) {}
fun myLetExplicit2(block: (IntArray) -> Unit) {}