Minor. Added regression tests for: KT-3927, KT-9522, KT-10036, KT-7440, KT-9682, KT-9808, KT-9517, KT-9810, KT-9345.

This commit is contained in:
Stanislav Erokhin
2016-01-24 15:39:51 +03:00
parent 298a075381
commit 210c9ab3db
21 changed files with 311 additions and 0 deletions
@@ -0,0 +1,19 @@
// !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(<!DEBUG_INFO_SMARTCAST!>value<!>)
}
// Overload resolution ambiguity
fun OverloadTest.overloadBoolean(value: Boolean?) = overload(value, OverloadTest::foo)
// Works fine
fun OverloadTest.overloadBoolean2(value: Boolean?) = overload(value) { foo(it) }
@@ -0,0 +1,21 @@
package
public inline fun </*0*/ T : kotlin.Any> OverloadTest.overload(/*0*/ value: T?, /*1*/ function: OverloadTest.(T) -> kotlin.Unit): kotlin.Unit
public fun OverloadTest.overloadBoolean(/*0*/ value: kotlin.Boolean?): kotlin.Unit
public fun OverloadTest.overloadBoolean2(/*0*/ value: kotlin.Boolean?): kotlin.Unit
public object Literal {
private constructor Literal()
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
}
public final class OverloadTest {
public constructor OverloadTest()
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
public final fun foo(/*0*/ bar: kotlin.Any?): kotlin.Unit
public final fun foo(/*0*/ bar: kotlin.Boolean): kotlin.Unit
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
}