On 29/04/2019 6:12 p.m., Berry Boessenkool wrote:

Hi,

my package has a warning in check (locally + all rhub::check_for_cran 
platforms):

* checking for unstated dependencies in examples ... WARNING
Warning: parse error in file 'berryFunctions-Ex.R':
'match' requires vector arguments

When I run the -Ex.R file locally (Windows 10, R3.5.2), things work fine, 
however.
parse("*-Ex.R") works fine.
devtools::run_examples() works fine as well.
https://github.com/brry/berryFunctions

Does anybody have an idea how to locate the cause for such a warning?
Does it mean something that this turns up in check unstated deps while checking 
examples itself has no problems?


It looks like a bug in the QC code, triggered by this line in one of your examples for ?dataStr:

  data(list=x$Call, package=x$Package, envir=env)

In the R-devel source file src/library/tools/R/QC.R, in function .check_packages_used_helper(), there's a nested function called find_bad_exprs(). It parses lots of calls, and in particular, in handling calls to data(), it has this code:


if(Call %in%  "data" && length(e) >= 3L) {
                mc <- match.call(utils::data, e)
if(!is.null(pkg <- mc$package) && pkg %notin% depends_suggests)
                    bad_data <<- c(bad_data, pkg)
            }

Here e is the quoted expression from above, and Call is "data". This sets pkg to the quoted expression x$package, and the test "pkg %notin% depends_suggests" dies with the error message you saw.

I think the fix for this is to check that pkg works out to be a string, not an expression, e.g.

if(!is.null(pkg <- mc$package) && is.character(pkg) && pkg %notin% depends_suggests)

I'm not sure what would be the best thing for you to do. You could fool the test by using obscure code like this

  do.call("data", list(list = x$Call, package=x$Package, envir=env))

or maybe you could just ignore the warning, pointing out that it is a bug in the QC code.

Duncan Murdoch

______________________________________________
R-package-devel@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-package-devel

Reply via email to