mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-04-19 21:11:28 +07:00
inherit unrelated abstract/default through hierarchy (IDEA-146070)
This commit is contained in:
@@ -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 {}
|
||||
}
|
||||
|
||||
@@ -89,6 +89,10 @@ public class Interface8MethodsHighlightingTest extends LightCodeInsightFixtureTe
|
||||
doTest();
|
||||
}
|
||||
|
||||
public void testMultipleDefaultsAndAbstractsSomeOfWhichOverridesEachOther() throws Exception {
|
||||
doTest();
|
||||
}
|
||||
|
||||
private void doTest() {
|
||||
doTest(false, false);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user