@Override
  public void visitMethodCallExpression(
      @NotNull GrMethodCallExpression call) {
    if (recursive) {
      return;
    }
    super.visitMethodCallExpression(call);
    final GrExpression methodExpression =
        call.getInvokedExpression();
    if (!(methodExpression instanceof GrReferenceExpression referenceExpression)) {
      return;
    }
    final String calledMethodName = referenceExpression.getReferenceName();
    if (calledMethodName == null) {
      return;
    }
    if (!calledMethodName.equals(methodName)) {
      return;
    }
    final PsiMethod calledMethod = call.resolveMethod();
    if (!method.equals(calledMethod)) {
      return;
    }
    if (method.hasModifierProperty(PsiModifier.STATIC) ||
        method.hasModifierProperty(PsiModifier.PRIVATE)) {
      recursive = true;
      return;
    }
    final GrExpression qualifier = referenceExpression.getQualifierExpression();
    if (qualifier == null || qualifier instanceof PsiThisExpression) {
      recursive = true;
    }
  }
@Override
  public void visitMethodCallExpression(
      @NotNull GrMethodCallExpression call)