Hi,

in one of the R files I have something like this, that defines a temporary function in order to define a static variable:

f <- function(){
    .a <- 0
    function(x=1){
        .a <<- .a + x
        .a
    }
}
f2 <- f()
rm(f)

When running roxygenise on this I get the error:
Error in eval(expr, envir, enclos) : object 'f' not found

No error with R CMD check.
If I use the -- very nice -- function devtools::load_all, it works perfectly fine as well.

In this simple case I know I could do f <- f() instead and remove the problematic call to rm (and it works fine).
But my actual use case is to define a S4 method like this:

setMethod('A', 'ANY', f())
rm(f)

Here I really need to remove not to have it remaining in my namespace.

Does roxygen2 source the R files differently?
Maybe there is an alternative way to define static variables for my use case, that would not break roxygenise?

Thank you

Renaud



###

UNIVERSITY OF CAPE TOWN
This e-mail is subject to the UCT ICT policies and e-mail disclaimer published 
on our website at http://www.uct.ac.za/about/policies/emaildisclaimer/ or 
obtainable from +27 21 650 9111. This e-mail is intended only for the person(s) 
to whom it is addressed. If the e-mail has reached you in error, please notify 
the author. If you are not the intended recipient of the e-mail you may not 
use, disclose, copy, redirect or print the content. If this e-mail is not 
related to the business of UCT it is sent by the sender in the sender's 
individual capacity.

###


_______________________________________________
Roxygen-devel mailing list
Roxygen-devel@lists.r-forge.r-project.org
https://lists.r-forge.r-project.org/cgi-bin/mailman/listinfo/roxygen-devel

Reply via email to