[Rd] Regarding the recent changes to @<-
John Chambers
jmc at r-project.org
Mon Jan 14 18:54:27 CET 2013
Thanks. No need for a complicated example actually:
> C1 <- setClass("C1", slots = c(x = "numeric"))
> c1 <- C1()
> c1 at x <- "Hello"
> validObject(c1)
Error in validObject(c1) :
invalid class "C1" object: invalid object for slot "x" in class "C1": got class "character", should be or extend class "numeric"
In making @<- substantially more efficient in r-devel, we lost some error checking. That's too efficient.
This will be fixed, but given that code has migrated from an R function to C and that I'm not currently at home, it may take a little while.
John
On Jan 13, 2013, at 3:34 PM, François Michonneau wrote:
> Hello all,
>
> In one of the packages (phylobase) I'm contributing to, we define a class
> as follows:
>
> setClass("phylo4",
> representation(edge = "matrix",
> edge.length = "numeric",
> label = "character",
> edge.label = "character",
> order = "character",
> annote = "list"),
> prototype = list(
> edge = matrix(nrow = 0, ncol = 2,
> dimname = list(NULL, c("ancestor",
> "descendant"))),
> edge.length = numeric(0),
> label = character(0),
> edge.label = character(0),
> order = "unknown",
> annote = list()
> ),
> validity = checkPhylo4)
>
> Using today's SVN checkout (r61643), building an object of the class
> 'phylo4' like this:
>
> phylo4(foo, annote="bar")
>
> doesn't return an error as it used to (given that annote is not a list).
>
> What is now the preferred way of checking that annote is a actually a
> list?
>
> Thanks,
> -- François
>
> [[alternative HTML version deleted]]
>
> ______________________________________________
> R-devel at r-project.org mailing list
> https://stat.ethz.ch/mailman/listinfo/r-devel
More information about the R-devel
mailing list