@Override
    public void visitMethodCallExpression(@NotNull PsiMethodCallExpression call) {
      final PsiReferenceExpression expression = call.getMethodExpression();
      final JavaResolveResult resolveResult = expression.advancedResolve(false);
      final PsiElement qualifier = expression.getQualifier();
      if (qualifier == null || qualifier instanceof PsiThisExpression) {
        final PsiMethod method = call.resolveMethod();
        if (method != null && !isCompletelyMoved(method)) {
          final String methodName = method.getName();
          if (method.hasModifierProperty(PsiModifier.STATIC)) {
            final PsiElement resolveScope = resolveResult.getCurrentFileResolveScope();
            if (resolveScope instanceof PsiImportStaticStatement) {
              final PsiClass targetClass = ((PsiImportStaticStatement)resolveScope).resolveTargetClass();
              out.append(targetClass != null ? targetClass.getQualifiedName() : "").append('.').append(methodName);
            } else {
              out.append(originalClassName).append('.').append(methodName);
            }
          }
          else {
            out.append(backPointerName).append('.').append(methodName);
          }
          final PsiExpressionList argumentList = call.getArgumentList();
          argumentList.accept(this);
        }
        else {
          visitElement(call);
        }
      }
      else {
        visitElement(call);
      }
    }
@Override
    public void visitMethodCallExpression(@NotNull PsiMethodCallExpression call)