为什么 `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
的错误吗?
包版本:
- devtools_1.13.6
- roxygen2_6.1.1
这似乎是 roxygen
中的错误:https://github.com/klutometis/roxygen/issues/843
假设我在 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
的错误吗?
包版本:
- devtools_1.13.6
- roxygen2_6.1.1
这似乎是 roxygen
中的错误:https://github.com/klutometis/roxygen/issues/843