1. Kotlin compares signatures by "overloading spec...
# language-proposals
d
1. Kotlin compares signatures by "overloading specificity" of arguments explicitly used in a call. Simply put, for
f(a, b, c)
we map a, b, and c to some parameters (possibly elements of vararg parameter) for each individual applicable f, and then compare types of those parameters. If there are still multiple applicable fs, we compare corresponding "call shapes" - that is, no vararg call wins against any vararg call; otherwise, call with less default arguments wins. Question: what to do with multiple varargs 🙂 ?