Thanks. No need for a complicated example actually: > C1 <- setClass("C1", slots = c(x = "numeric")) > c1 <- C1() > c1@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@r-project.org mailing list > https://stat.ethz.ch/mailman/listinfo/r-devel ______________________________________________ R-devel@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-devel