KT-9371 Callable reference resolve should not prefer one of the overloads by some magic reasons

#KT-9371 Fixed
This commit is contained in:
Stanislav Erokhin
2015-10-19 14:55:32 +03:00
parent 891e033d5b
commit 553834fa9e
12 changed files with 131 additions and 15 deletions
@@ -0,0 +1,30 @@
// !CHECK_TYPE
// !DIAGNOSTICS: -UNUSED_PARAMETER -UNUSED_EXPRESSION
import kotlin.reflect.KFunction1
open class A {
open fun bar() {}
fun bas() {}
}
class B: A() {
override fun bar() {}
fun bas(i: Int) {}
}
fun A.foo() {}
fun B.foo() {}
fun fas() {}
fun fas(i: Int = 1) {}
fun test() {
B::<!OVERLOAD_RESOLUTION_AMBIGUITY!>foo<!> // todo KT-9601 Chose maximally specific function in callable reference
B::bar checkType { _<KFunction1<B, Unit>>() }
B::<!OVERLOAD_RESOLUTION_AMBIGUITY!>bas<!>
::<!OVERLOAD_RESOLUTION_AMBIGUITY!>fas<!>
}