Move OverridingUtil#getUpperBound to OverloadUtil, add tests on overloads

This commit is contained in:
Alexander Udalov
2015-10-22 22:57:34 +03:00
parent 477823b093
commit 426bddb54e
7 changed files with 98 additions and 17 deletions
@@ -0,0 +1,15 @@
import java.io.Serializable
interface Test1 {
<!CONFLICTING_OVERLOADS!>fun <T> foo(t: T)<!> where T : Cloneable, T : Serializable
<!CONFLICTING_OVERLOADS!>fun <T> foo(t: T)<!> where T : Serializable, T : Cloneable
}
interface I1
interface I2 : I1
interface Test2 {
<!CONFLICTING_OVERLOADS!>fun <T> foo(t: T)<!> where T : I1, T : I2
<!CONFLICTING_OVERLOADS!>fun <T> foo(t: T)<!> where T : I2, T : I1
}
@@ -0,0 +1,29 @@
package
public interface I1 {
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 I2 : I1 {
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 Test1 {
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
public abstract fun </*0*/ T : kotlin.Cloneable> foo(/*0*/ t: T): kotlin.Unit where T : java.io.Serializable
public abstract fun </*0*/ T : java.io.Serializable> foo(/*0*/ t: T): kotlin.Unit where T : kotlin.Cloneable
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
}
public interface Test2 {
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
public abstract fun </*0*/ T : I1> foo(/*0*/ t: T): kotlin.Unit where T : I2
public abstract fun </*0*/ T : I2> foo(/*0*/ t: T): kotlin.Unit where T : I1
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
}