boolean (PsiMethod method, PsiClass methodClass) { final PsiMethod[] superMethods = method.findSuperMethods(); boolean hasSupers = false; for (PsiMethod superMethod : superMethods) { final PsiClass superClass = superMethod.getContainingClass(); if (ignoreSuperMethod(method, methodClass, superMethod, superClass)) { continue; } hasSupers = true; if (!superMethod.hasModifierProperty(PsiModifier.PROTECTED)) { return true; } } // is override except if this is an interface method // overriding a protected method in java.lang.Object // http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6501053 return hasSupers && !methodClass.isInterface(); }