@Nullable
  private static GrMethodCallExpression checkMethodResolvable(GrMethodCallExpression methodCall,
                                                              PsiMethod targetMethod,
                                                              GrReferenceExpression context,
                                                              PsiClass aClass) throws IncorrectOperationException {
    PsiElementFactory factory = JavaPsiFacade.getInstance(targetMethod.getProject()).getElementFactory();
    final PsiElement resolved = ((GrReferenceExpression)methodCall.getInvokedExpression()).resolve();
    if (resolved != targetMethod) {
      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.getInvokedExpression().replace(newMethodExpression);
      }
      else {
        methodCall = null;
      }
    }
    return methodCall;
  }
@Nullable
  private static GrMethodCallExpression checkMethodResolvable(GrMethodCallExpression methodCall,
                                                              PsiMethod targetMethod,
                                                              GrReferenceExpression context,
                                                              PsiClass aClass)