S4 generic not exported correctly / incorrect dispatch?
In this post https://stat.ethz.ch/pipermail/bioc-devel/2013-March/004152.html a package author reports that S4 dispatch fails. I can reproduce this with a PkgA (attached; 'intervals' is a relatively light-weight CRAN package) that has DESCRIPTION with Depends: intervals Imports: graphics NAMESPACE: importFrom(graphics, "plot") export("plot") exportMethods("plot") R/tmp.R setClass("A") setMethod("plot", "A", function(x, y, ...) {}) and then > library(PkgA) Loading required package: intervals > plot function (x, y, ...) UseMethod("plot") <environment: namespace:graphics> notice that 'plot' is reported as an S3 generic, but should be an S4 generic. Removing Depends: intervals or changing to importsFrom(intervals, "plot") recovers S4 export > library(PkgA) Loading required package: intervals > plot standardGeneric for "plot" defined from package "graphics" function (x, y, ...) standardGeneric("plot") <environment: 0x60aea90> Methods may be defined for arguments: x, y Use showMethods("plot") for currently available ones. The 'intervals' package Depends: on methods but nothing else. It defines S3 and S4 methods on plot, creating an implicit S4 generic in the process. It's NAMESPACE has S3method( "plot", "Intervals" ) S3method( "plot", "Intervals_full" ) exportMethods("plot") and we have > library(intervals) > plot standardGeneric for "plot" defined from package "graphics" function (x, y, ...) standardGeneric("plot") <environment: 0x68cdc78> Methods may be defined for arguments: x, y Use showMethods("plot") for currently available ones. I think everyone is playing by the rules, and that plot should be reported as an S4 generic in girafe / PkgA? > sessionInfo() R Under development (unstable) (2013-03-13 r62241) Platform: x86_64-unknown-linux-gnu (64-bit) locale: [1] LC_CTYPE=en_US.UTF-8 LC_NUMERIC=C [3] LC_TIME=en_US.UTF-8 LC_COLLATE=en_US.UTF-8 [5] LC_MONETARY=en_US.UTF-8 LC_MESSAGES=en_US.UTF-8 [7] LC_PAPER=C LC_NAME=C [9] LC_ADDRESS=C LC_TELEPHONE=C [11] LC_MEASUREMENT=en_US.UTF-8 LC_IDENTIFICATION=C attached base packages: [1] stats graphics grDevices utils datasets methods base other attached packages: [1] PkgA_1.2.3 intervals_0.14.0 This is also seen in > sessionInfo() R version 3.0.0 alpha (2013-03-13 r62244) Platform: x86_64-unknown-linux-gnu (64-bit) Martin
Computational Biology / Fred Hutchinson Cancer Research Center 1100 Fairview Ave. N. PO Box 19024 Seattle, WA 98109 Location: Arnold Building M1 B861 Phone: (206) 667-2793 -------------- next part -------------- A non-text attachment was scrubbed... Name: PkgA_1.2.3.tar.gz Type: application/x-gzip Size: 729 bytes Desc: not available URL: <https://stat.ethz.ch/pipermail/r-devel/attachments/20130313/56aa2aff/attachment.gz>