[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