valid static method reference on class's inheritor (IDEA-187974)

This commit is contained in:
Anna.Kozlova
2018-03-09 11:16:59 +01:00
parent ea018610eb
commit 51f6813ee3
2 changed files with 14 additions and 1 deletions

View File

@@ -1420,7 +1420,10 @@ public class HighlightVisitorImpl extends JavaElementVisitor implements Highligh
}
if (!myHolder.hasErrorResults() && method instanceof PsiMethod && ((PsiMethod)method).hasModifierProperty(PsiModifier.STATIC)) {
myHolder.add(HighlightMethodUtil.checkStaticInterfaceCallQualifier(expression, result, expression.getTextRange(), ((PsiMethod)method).getContainingClass()));
PsiClass containingClass = ((PsiMethod)method).getContainingClass();
if (containingClass != null && containingClass.isInterface()) {
myHolder.add(HighlightMethodUtil.checkStaticInterfaceCallQualifier(expression, result, expression.getTextRange(), containingClass));
}
}
if (!myHolder.hasErrorResults()) {

View File

@@ -9,3 +9,13 @@ class A implements I {
System.out.println(r);
}
}
class B {
static void foo() {}
}
class C extends B {
{
Runnable r = C::foo;
}
}