Select most specific overloaded function/property by explicitly used arguments only.
Major rewrite of OverloadingConflictResolver.
This commit is contained in:
+20
@@ -0,0 +1,20 @@
|
||||
// !DIAGNOSTICS: -UNUSED_PARAMETER
|
||||
|
||||
object Right
|
||||
object Wrong
|
||||
|
||||
fun overloadedFun1(c: Any = "", b: String = "", f: Any = "") = Right
|
||||
fun overloadedFun1(b: Any = "", c: Any = "", e: String = "") = Wrong
|
||||
|
||||
val test1: Right = overloadedFun1(b = "")
|
||||
val test1a: Wrong = <!TYPE_MISMATCH!>overloadedFun1(b = "")<!>
|
||||
|
||||
fun overloadedFun2(a: String, b: Any = "") = Right
|
||||
fun overloadedFun2(a: Any, b: String = "") = Wrong
|
||||
|
||||
val test2: Right = overloadedFun2("")
|
||||
|
||||
fun overloadedFun2a(a: Any, b: String = "") = Wrong
|
||||
fun overloadedFun2a(a: String, b: Any = "") = Right
|
||||
|
||||
val test2a: Right = overloadedFun2a("")
|
||||
Reference in New Issue
Block a user