KT-9550: distinguish signature conflict on override from signature conflict of inherited members.

Add a common OverridingStrategy class for cases where we don't care (yet) about precise diagnostics.
This commit is contained in:
Dmitry Petrov
2016-02-19 13:04:17 +03:00
parent 883e2e4d2b
commit 30c2abba3c
13 changed files with 86 additions and 13 deletions
@@ -0,0 +1,13 @@
interface A {
fun <T> foo()
fun <T> bar()
}
interface B {
fun foo()
fun bar()
}
<!CONFLICTING_INHERITED_MEMBERS!>interface C1<!> : A, B {
<!CONFLICTING_OVERLOADS!>override fun bar()<!>
}
@@ -0,0 +1,25 @@
package
public interface A {
public abstract fun </*0*/ T> bar(): kotlin.Unit
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
public abstract fun </*0*/ T> foo(): kotlin.Unit
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
}
public interface B {
public abstract fun bar(): kotlin.Unit
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
public abstract fun foo(): kotlin.Unit
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
}
public interface C1 : A, B {
public abstract override /*1*/ fun bar(): kotlin.Unit
public open override /*2*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
public abstract override /*1*/ /*fake_override*/ fun </*0*/ T> foo(): kotlin.Unit
public open override /*2*/ /*fake_override*/ fun hashCode(): kotlin.Int
public open override /*2*/ /*fake_override*/ fun toString(): kotlin.String
}