[Rd] using setOldClass() causes warning on unloadNamespace() if the package imports methods

sebastian.meyer at ifspm.uzh.ch sebastian.meyer at ifspm.uzh.ch
Tue Aug 28 23:11:40 CEST 2012

For the CRAN-package "surveillance", unloadNamespace("surveillance") gives the following warning message:

In FUN(X[[2L]], ...) :
  Created a package name, ‘2012-08-28 22:42:37’, when none found

Similar warnings appear for the CRAN-package "solaR" and probably some other packages.

I created a dummy package (tarball is attached) to find out where this warning comes from.
Apparently, the warning is related to the package defining a virtual S4 class using setOldClass("fooS3class"). However, the crucial thing is that the warning only appears, when the methods package is imported in the NAMESPACE. There is also no warning if setClass("fooS3class") is used instead. So my question is: What would be the right way of handling S3 classes in the S4 world?

My minor second question is: Should the NAMESPACE state exportMethods(coerce) if the package defines new coerce-methods? It seems that coercion-methods defined by the package using setAs() are also visible after loading the package without explicitly exporting these. However, if one includes exportMethods(coerce) then one must also document them (as stated by R CMD check).

Thanks for any hints!


PS: using
R Under development (unstable) (2012-08-28 r60472)
Platform: x86_64-unknown-linux-gnu (64-bit)

More information about the R-devel mailing list