java: override default: fix super qualifier for default method (IDEA-260570)

exclude class inheritance

GitOrigin-RevId: 6d731ea550391c8f62c8800d11d85728d1bd420c
This commit is contained in:
Anna Kozlova
2021-02-01 14:10:09 +00:00
committed by intellij-monorepo-bot
parent 54ebbcd389
commit e9fba42084
4 changed files with 28 additions and 1 deletions
@@ -342,7 +342,7 @@ public final class OverrideImplementUtil extends OverrideImplementExploreUtil {
for (PsiClassType type : targetClass.getSuperTypes()) {
PsiClass superClass = type.resolve();
if (InheritanceUtil.isInheritorOrSelf(superClass, aClass, true)) {
return superClass;
return superClass.isInterface() ? superClass : null;
}
}
}
@@ -0,0 +1,14 @@
interface A {
default void foo() {}
}
interface B1 extends A {}
class B implements A {}
class C extends B implements B1 {
@Override
public void foo() {
<selection><caret>super.foo();</selection>
}
}
@@ -0,0 +1,11 @@
interface A {
default void foo() {}
}
interface B1 extends A {}
class B implements A {}
class C extends B implements B1 {
<caret>
}
@@ -53,6 +53,8 @@ class OverrideImplementTest extends LightJavaCodeInsightFixtureTestCase {
void testExtensionMethods1() { doTest(true) }
void testExtensionMethods2() { doTest(true) }
void testSkipUnknownAnnotations() { doTest(true) }
void testMultipleInheritedThrows() { doTest(false) }