mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
highlight inherited methods inside anonymous/inner classes (IDEA-134626)
This commit is contained in:
+7
-2
@@ -62,8 +62,13 @@ public class HighlightNamesUtil {
|
||||
|
||||
if (!isDeclaration) {
|
||||
if (isCalledOnThis(elementToHighlight)) {
|
||||
PsiClass enclosingClass = PsiTreeUtil.getParentOfType(elementToHighlight, PsiClass.class);
|
||||
isInherited = enclosingClass != null && enclosingClass.isInheritor(method.getContainingClass(), true);
|
||||
final PsiClass containingClass = method.getContainingClass();
|
||||
PsiClass enclosingClass = containingClass == null ? null : PsiTreeUtil.getParentOfType(elementToHighlight, PsiClass.class);
|
||||
while (enclosingClass != null) {
|
||||
isInherited = enclosingClass.isInheritor(containingClass, true);
|
||||
if (isInherited) break;
|
||||
enclosingClass = PsiTreeUtil.getParentOfType(enclosingClass, PsiClass.class, true);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
+34
@@ -59,4 +59,38 @@ class <symbolName descr="null" type="CLASS_NAME">NoCtrClass</symbolName> {
|
||||
|
||||
class <symbolName descr="null" type="CLASS_NAME">Generic</symbolName><<symbolName descr="null" type="TYPE_PARAMETER_NAME">TT</symbolName> extends <symbolName descr="null" type="INTERFACE_NAME">Runnable</symbolName>> {
|
||||
<symbolName descr="null" type="TYPE_PARAMETER_NAME">TT</symbolName> <symbolName descr="null" type="INSTANCE_FIELD">field</symbolName>;
|
||||
}
|
||||
|
||||
class <symbolName descr="null" type="CLASS_NAME">InheritedSymbolNames</symbolName> {
|
||||
|
||||
private static class <symbolName descr="null" type="CLASS_NAME">A</symbolName> {
|
||||
public <symbolName descr="null" type="CLASS_NAME">String</symbolName> <symbolName descr="null" type="METHOD_DECLARATION">getName</symbolName>() {
|
||||
return "classA";
|
||||
}
|
||||
}
|
||||
|
||||
private static class <symbolName descr="null" type="CLASS_NAME">B</symbolName> extends <symbolName descr="null" type="CLASS_NAME">A</symbolName> {
|
||||
{
|
||||
new <symbolName descr="null" type="ANONYMOUS_CLASS_NAME">java.lang.Runnable</symbolName>() {
|
||||
public void <symbolName descr="null" type="METHOD_DECLARATION">run</symbolName>() {
|
||||
<symbolName descr="null" type="INHERITED_METHOD">getName</symbolName>();
|
||||
}
|
||||
};
|
||||
<symbolName descr="null" type="INHERITED_METHOD">getName</symbolName>();
|
||||
}
|
||||
}
|
||||
|
||||
private static class <symbolName descr="null" type="CLASS_NAME">C</symbolName> extends <symbolName descr="null" type="CLASS_NAME">A</symbolName> {
|
||||
{
|
||||
new <symbolName descr="null" type="ANONYMOUS_CLASS_NAME">java.lang.Runnable</symbolName>() {
|
||||
public void <symbolName descr="null" type="METHOD_DECLARATION">run</symbolName>() {
|
||||
<symbolName descr="null" type="METHOD_CALL">getName</symbolName>();
|
||||
}
|
||||
};
|
||||
<symbolName descr="null" type="METHOD_CALL">getName</symbolName>();
|
||||
}
|
||||
public <symbolName descr="null" type="CLASS_NAME">String</symbolName> <symbolName descr="null" type="METHOD_DECLARATION">getName</symbolName>() {
|
||||
return "classC";
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user