为什么 `devtools::document()` 在函数定义为空的 `setMethod` 上跳闸?

Why does `devtools::document()` trip on `setMethod` whose function definition is empty?

假设我在 RStudio 中使用 devtools 构建一个 R 包。

假设我还有这个 R 源文件,代码如下:

#' @param object An object
#' @param data Numeric vector or data.frame
#' @param Fun Function. Default function is \code{sum}
#' @param ... Extra named arguments passed to FUN
#' @rdname myGeneric
#' @export
setGeneric("myGeneric", function(object, data, FUN, ...)
{standardGeneric ("myGeneric")} )

#' @rdname myGeneric
setMethod("myGeneric", c("numeric", "numeric", "function"),
          function(object, data, FUN, ...) {
            return(42)
            }
          )

现在,devtools::document(roclets=c('rd', 'collate', 'namespace')) 运行 很好,除了有关丢失 name/title:

的警告
> devtools::document(roclets=c('rd', 'collate', 'namespace'))
Updating gwasrapidd documentation
Loading gwasrapidd
Writing NAMESPACE
Writing NAMESPACE
Warning message:
myGeneric.Rd is missing name/title. Skipping 

但是,如果我像这样在函数定义中注释那行 return(42)

#' @param object An object
#' @param data Numeric vector or data.frame
#' @param Fun Function. Default function is \code{sum}
#' @param ... Extra named arguments passed to FUN
#' @rdname myGeneric
#' @export
setGeneric("myGeneric", function(object, data, FUN, ...)
{standardGeneric ("myGeneric")} )

#' @rdname myGeneric
setMethod("myGeneric", c("numeric", "numeric", "function"),
          function(object, data, FUN, ...) {
            #return(42)
            }
          )

和 运行 再次 devtools::document(roclets=c('rd', 'collate', 'namespace')) 我现在得到一个错误:

> devtools::document(roclets=c('rd', 'collate', 'namespace'))
Updating gwasrapidd documentation
Loading gwasrapidd
Error in method_body[[2]] : subscript out of bounds

我的问题是为什么?是 devtools 的错误吗?

包版本:

这似乎是 roxygen 中的错误:https://github.com/klutometis/roxygen/issues/843