boolean (PsiMethodCallExpression methodCallExpression, PsiMethod method) { // void foo(int param) { super.foo(42); } is not redundant PsiExpression[] arguments = methodCallExpression.getArgumentList().getExpressions(); PsiParameter[] parameters = method.getParameterList().getParameters(); if (arguments.length != parameters.length) return false; for (int i = 0; i < arguments.length; i++) { PsiExpression argument = arguments[i]; PsiExpression exp = PsiUtil.deparenthesizeExpression(argument); if (!(exp instanceof PsiReferenceExpression)) return false; PsiElement resolved = ((PsiReferenceExpression)exp).resolve(); if (!method.getManager().areElementsEquivalent(parameters[i], resolved)) { return false; } } return true; }