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:
@@ -0,0 +1,28 @@
|
||||
// KT-9682 Overload Resolution Ambiguity after casting to Interface
|
||||
|
||||
open class Foo {
|
||||
fun bar(): Foo {
|
||||
return this
|
||||
}
|
||||
}
|
||||
|
||||
class Foo2 : Foo(), IFoo
|
||||
|
||||
interface IFoo {
|
||||
fun bar(): Foo
|
||||
}
|
||||
|
||||
fun test() {
|
||||
val foo : Foo = Foo2()
|
||||
foo as IFoo
|
||||
foo.bar() // Should be resolved to Foo#bar
|
||||
}
|
||||
|
||||
interface IFoo2 {
|
||||
fun bar(): IFoo2
|
||||
}
|
||||
|
||||
fun test2(foo: Foo) {
|
||||
foo as IFoo2
|
||||
foo.<!OVERLOAD_RESOLUTION_AMBIGUITY!>bar<!>() // should be ambiguity
|
||||
}
|
||||
@@ -0,0 +1,34 @@
|
||||
package
|
||||
|
||||
public fun test(): kotlin.Unit
|
||||
public fun test2(/*0*/ foo: Foo): kotlin.Unit
|
||||
|
||||
public open class Foo {
|
||||
public constructor Foo()
|
||||
public final fun bar(): Foo
|
||||
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 Foo2 : Foo, IFoo {
|
||||
public constructor Foo2()
|
||||
public final override /*2*/ /*fake_override*/ fun bar(): Foo
|
||||
public open override /*2*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
|
||||
public open override /*2*/ /*fake_override*/ fun hashCode(): kotlin.Int
|
||||
public open override /*2*/ /*fake_override*/ fun toString(): kotlin.String
|
||||
}
|
||||
|
||||
public interface IFoo {
|
||||
public abstract fun bar(): Foo
|
||||
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 interface IFoo2 {
|
||||
public abstract fun bar(): IFoo2
|
||||
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
|
||||
}
|
||||
@@ -0,0 +1,8 @@
|
||||
// KT-9808 Extension function on object for new resolve
|
||||
object O
|
||||
|
||||
val foo: O.() -> Unit = null!!
|
||||
|
||||
fun test() {
|
||||
O.foo()
|
||||
}
|
||||
@@ -0,0 +1,11 @@
|
||||
package
|
||||
|
||||
public val foo: O.() -> kotlin.Unit
|
||||
public fun test(): kotlin.Unit
|
||||
|
||||
public object O {
|
||||
private constructor O()
|
||||
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
|
||||
}
|
||||
Reference in New Issue
Block a user