Почему `devtools :: document ()` отключается на `setMethod`, определение функции которого пусто? - PullRequest
0 голосов
/ 05 февраля 2019

Предположим, я создаю пакет R с devtools в RStudio.

Предположим, у меня также есть этот исходный файл 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

1 Ответ

0 голосов
/ 20 февраля 2019

Кажется, это ошибка в roxygen: https://github.com/klutometis/roxygen/issues/843

...