boolean (PsiMethodCallExpression methodCallExpression) { final PsiMethod superMethod = methodCallExpression.resolveMethod(); if (superMethod == null) { return false; } final PsiClass aClass = PsiTreeUtil.getParentOfType(methodCallExpression, PsiClass.class); if (aClass != null && MethodUtils.isOverriddenInHierarchy(superMethod, aClass)) { return false; } // check that super.m() and m() resolve to the same method final PsiMethodCallExpression copy = (PsiMethodCallExpression)methodCallExpression.copy(); final PsiReferenceExpression methodExpression = copy.getMethodExpression(); final PsiElement qualifier = methodExpression.getQualifier(); if (qualifier == null) { return false; } qualifier.delete(); //remove super final JavaResolveResult resolveResult = copy.resolveMethodGenerics(); PsiElement element = resolveResult.getElement(); return resolveResult.isValidResult() && superMethod.getManager().areElementsEquivalent(superMethod, element); }