docs: private boolean canMakeCopyUsing(
        ImmutableList<ExecutableElement> copyOfMethods,
        ExecutableElement valueGetter,
        ExecutableElement setter) {
      DeclaredType targetType = MoreTypes.asDeclared(getterToPropertyType.get(valueGetter));
      TypeMirror parameterType = setter.getParameters().get(0).asType();
      for (ExecutableElement copyOfMethod : copyOfMethods) {
        if (canMakeCopyUsing(copyOfMethod, targetType, parameterType)) {
          return true;
        }
      }
      String targetTypeSimpleName = targetType.asElement().getSimpleName().toString();
      String error =
          String.format(
              "Parameter type of setter method should be %s to match getter %s.%s, or it should be a "
                  + "type that can be passed to %s.%s to produce %s",
              targetType,
              autoValueClass,
              valueGetter.getSimpleName(),
              targetTypeSimpleName,
              copyOfMethods.get(0).getSimpleName(),
              targetType);
      errorReporter.reportError(error, setter);
      return false;
    }