Martin Morgan
2006-May-15 23:40 UTC
[Rd] R CMD check does not remove all S4 methods defined in examples
Methods for generics created in '\example{}' sections of Rd files are not entirely removed at the end of the example. This is because the methods package caches these (in the environment returned by getGeneric("initialize"), for the example below) as well as storing their definition in the global environment. The following would be derived from example code in pkg/man/eg1.Rd and pkg/man/eg2.Rd. 'initialize' created for the first example persists in the second, leading eventually (during R CMD check) to> a <- new("A")Shouldn't be here Error in initialize(value, ...) : initialize method returned an object of class "NULL" instead of the required class "A" [standard code and comments from pkg-Ex.R removed] ### * eg1 flush(stderr()); flush(stdout()) setClass("A", representation(x="numeric")) setMethod("initialize", "A", function(.Object, ...) cat("Shouldn't be here\n")) cleanEx(); ..nameEx <- "eg2" ### * eg2 flush(stderr()); flush(stdout()) setClass("A", representation(x="numeric")) a <- new("A")