@Nullable
  private static PsiMethodCallExpression checkMethodResolvable(@NotNull PsiMethodCallExpression methodCall,
                                                               @NotNull PsiMethod targetMethod,
                                                               PsiReferenceExpression context,
                                                               PsiClass aClass) throws IncorrectOperationException {
    PsiElementFactory factory = JavaPsiFacade.getElementFactory(targetMethod.getProject());
    final PsiElement resolved = methodCall.getMethodExpression().resolve();
    if (!targetMethod.equals(resolved)) {
      PsiClass containingClass;
      if (resolved instanceof PsiMethod) {
        containingClass = ((PsiMethod)resolved).getContainingClass();
      }
      else if (resolved instanceof PsiClass) {
        containingClass = (PsiClass)resolved;
      }
      else {
        return null;
      }
      if (containingClass != null && containingClass.isInheritor(aClass, false)) {
        final PsiExpression newMethodExpression =
          factory.createExpressionFromText("super." + targetMethod.getName(), context);
        methodCall.getMethodExpression().replace(newMethodExpression);
      }
      else {
        methodCall = null;
      }
    }
    return methodCall;
  }
@Nullable
  private static PsiMethodCallExpression checkMethodResolvable(@NotNull PsiMethodCallExpression methodCall,
                                                               @NotNull PsiMethod targetMethod,
                                                               PsiReferenceExpression context,
                                                               PsiClass aClass)