extend check for enclosing instance for java 8 default methods in interfaces (IDEA-140492)

This commit is contained in:
Anna Kozlova
2015-05-20 13:49:51 +02:00
parent 2fc7821d06
commit 1d5ff33cbe
2 changed files with 13 additions and 0 deletions
@@ -1522,6 +1522,12 @@ public class HighlightUtil extends HighlightUtilBase {
.descriptionAndTooltip(JavaErrorMessages.message("bad.qualifier.in.super.method.reference", format(aClass), formatClass(superClass))).create();
}
}
if (expr instanceof PsiSuperExpression && !classT.isInheritor(aClass, false)) {
return HighlightInfo.newHighlightInfo(HighlightInfoType.ERROR)
.range(qualifier)
.descriptionAndTooltip(JavaErrorMessages.message("no.enclosing.instance.in.scope", format(aClass))).create();
}
}
}
@@ -38,5 +38,12 @@ class Test {
}
};
}
interface D extends J {
default void m() {
<error descr="No enclosing instance of type 'Test.D' is in scope">D</error>.super.toString();
J.super.toString();
}
}
}