inherit unrelated abstract/default through hierarchy (IDEA-146070)

This commit is contained in:
Anna Kozlova
2016-01-07 14:44:08 +01:00
parent a25cb73db1
commit df3e5be8cb
2 changed files with 59 additions and 0 deletions

View File

@@ -0,0 +1,55 @@
class Test1 {
interface A {
default void foo() { }
}
abstract class B {
public abstract void foo();
}
abstract class C extends B implements A { }
}
class Test2 {
interface A {
default void foo() { }
}
interface B extends A {}
interface C extends A {
default void foo() {}
}
abstract class D implements C, B { }
}
class Test3 {
interface A {
void accept();
}
interface B extends A {}
interface C extends A {
default void accept(){}
}
class D implements B, C {}
}
class Test4 {
interface A {
default void accept(){}
}
interface B extends A {}
interface C extends A {
void accept();
}
<error descr="Class 'D' must either be declared abstract or implement abstract method 'accept()' in 'C'">class <error descr="Class 'D' must either be declared abstract or implement abstract method 'accept()' in 'C'">D</error> implements B, C</error> {}
abstract class E implements B, C {}
}