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,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
}