LineMarkerInfo<PsiElement> (PyTargetExpression element) { final String name = element.getReferencedName(); if (name == null) { return null; } PyClass containingClass = PsiTreeUtil.getParentOfType(element, PyClass.class); if (containingClass == null) return null; for (PyClass ancestor : containingClass .getAncestorClasses(TypeEvalContext.codeAnalysis(element.getProject(), element.getContainingFile()))) { final PyTargetExpression ancestorAttr = ancestor.findClassAttribute(name, false, null); if (ancestorAttr != null) { PsiElement identifier = element.getNameIdentifier(); if (identifier != null) { return new LineMarkerInfo<>(identifier, identifier.getTextRange(), AllIcons.Gutter.OverridingMethod, new TooltipProvider( PyBundle.message("line.markers.tooltip.overrides.attribute.in.class", ancestor.getName())), SUPER_ATTRIBUTE_NAVIGATOR, GutterIconRenderer.Alignment.RIGHT); } } } return null; }