mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-04-19 13:02:30 +07:00
java 8: forbid super in static methods
This commit is contained in:
@@ -1462,7 +1462,7 @@ public class HighlightUtil extends HighlightUtilBase {
|
||||
final PsiType superType = expr.getType();
|
||||
if (!(superType instanceof PsiClassType)) return false;
|
||||
final PsiClass superClass = ((PsiClassType)superType).resolve();
|
||||
return superClass != null && aClass.equals(superClass);
|
||||
return superClass != null && aClass.equals(superClass) && PsiUtil.getEnclosingStaticElement(expr, PsiTreeUtil.getParentOfType(expr, PsiClass.class)) == null;
|
||||
}
|
||||
|
||||
@NotNull
|
||||
|
||||
@@ -0,0 +1,13 @@
|
||||
interface Super
|
||||
{
|
||||
default void method()
|
||||
{
|
||||
System.out.println("Super.method()");
|
||||
}
|
||||
}
|
||||
|
||||
interface Sub extends Super {
|
||||
static void foo() {
|
||||
<error descr="'Super' is not an enclosing class">Super.super</error>.method();
|
||||
}
|
||||
}
|
||||
@@ -32,6 +32,9 @@ public class Interface8MethodsHighlightingTest extends LightDaemonAnalyzerTestCa
|
||||
public void testThisAccessibility() { doTest(false, false); }
|
||||
public void testStaticMethodCalls() { doTest(false, false); }
|
||||
public void testDefaultMethodOverrideEquivalentObject() { doTest(false, false); }
|
||||
public void testDefaultSupersInStaticContext() {
|
||||
doTest(false, false);
|
||||
}
|
||||
|
||||
private void doTest() {
|
||||
doTest(false, false);
|
||||
|
||||
Reference in New Issue
Block a user