private static @NotNull Icon getDumbOverridingIcon(@NotNull PsiMethod method) {
    PsiClass aClass = method.getContainingClass();
    if (aClass == null) return AllIcons.Gutter.OverridingMethod;

    PsiReferenceList implementsList = aClass.getImplementsList();
    PsiReferenceList extendsList = aClass.getExtendsList();
    if (implementsList != null && implementsList.getReferenceElements().length != 0 &&
        (extendsList == null || extendsList.getReferenceElements().length == 0)) {
      // has some interfaces to implement
      String methodName = method.getName();
      if (!methodName.equals("equals")
          && !methodName.equals("hashCode")
          && !methodName.equals("clone")
          && !methodName.equals("toString")) {
        return AllIcons.Gutter.ImplementingMethod;
      }
    }

    return AllIcons.Gutter.OverridingMethod;
  }
private static @NotNull Icon getDumbOverridingIcon(@NotNull PsiMethod method)