de50f8aef3
Here we introduce ONLY_IMPLICIT_RECEIVER tower level to support extension lambda calls on local variables, and soften extension receiver checks to make such extensions visible & applicable. Also here we try to map arguments twice for functional types
19 lines
639 B
Kotlin
Vendored
19 lines
639 B
Kotlin
Vendored
// !DIAGNOSTICS: -UNUSED_EXPRESSION -UNUSED_PARAMETER
|
|
// KT-10036 Ambiguous overload cannot be resolved when using a member function reference in Beta 2, that worked in Beta 1
|
|
|
|
class OverloadTest {
|
|
fun foo(bar: Boolean) {}
|
|
fun foo(bar: Any?) {}
|
|
}
|
|
|
|
object Literal
|
|
|
|
inline fun <T : Any> OverloadTest.overload(value: T?, function: OverloadTest.(T) -> Unit) {
|
|
if (value == null) foo(Literal) else function(value)
|
|
}
|
|
|
|
// Overload resolution ambiguity
|
|
fun OverloadTest.overloadBoolean(value: Boolean?) = overload(value, OverloadTest::foo)
|
|
|
|
// Works fine
|
|
fun OverloadTest.overloadBoolean2(value: Boolean?) = overload(value) { foo(it) } |