A slightly simpler formulation of the problem is: show <- function(...) stop("My show!") methods::setClass("Person", slots = list(name = "character")) methods::new("Person", name = "Tom") #> Error in (function (...) : My show!
Hadley On Tue, Jun 30, 2015 at 9:02 AM, Dean Attali <daatt...@gmail.com> wrote: > Hi r-devel > > If you define a function named `show` or attach a package with an exported > `show` function, then printing/vieweing S4 objects breaks. This is probably > because the `print` function calls `show`, which is now masked. > > Example: > > show <- function() {} >> setClass("Person", slots = list(name = "character")) >> tom <- new("Person", name = "Tom") >> tom # error >> methods::show(tom) # works > > > The error was a surprise to me because I was under the assumption that > `show` would be namespaced and therefore should not break. > I'm wondering if this is intended behaviour, or if this is a problem. My > intuition, and Hadley agreed on Twitter, is that defining a `show` method > should not have such a grave effect on printing S4 objects. > > Thanks > > --- > http://deanattali.com > > [[alternative HTML version deleted]] > > ______________________________________________ > R-devel@r-project.org mailing list > https://stat.ethz.ch/mailman/listinfo/r-devel -- http://had.co.nz/ ______________________________________________ R-devel@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-devel