Indeed that was on oversight on my part.  It is surprising that things like 
this work:

> setClass('test', slots=c(a='ANY'), prototype=list(a=NULL, b='hello'))
> new('test')@b
[1] "hello"
> slotNames(new('test'))
[1] "a"

I'm planning a release of diffobj right now so I will fix this, but I agree 
that R should probably throw an error here.

Best,

B.




On Thursday, January 10, 2019, 11:30:13 AM EST, William Dunlap 
<wdun...@tibco.com> wrote: 





I was installing the 'diffobj' package into TERR and got an error from the call
StyleSummary <- setClass("StyleSummary",
  slots=c(container="ANY", body="ANY", map="ANY"),
  prototype=list(
    container=function(x) sprintf("\n%s\n", paste0(x, collapse="")),
    body=identity,
    detail=function(x) sprintf("\n%s\n", paste0("  ", x, collapse="")),
    map=function(x) sprintf("\n%s", paste0("  ", x, collapse="\n"))
  ))
because the prototype contained components not in the slots list.  R does not 
complain about the mismatch, but new("StyleSummary") does name make something 
with a 'detail' slot.  Should this be an error?

I suspect that the package writer intended to include 'detail' in the slots 
argument.

Bill Dunlap
TIBCO Software
wdunlap tibco.com

______________________________________________
R-devel@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-devel

Reply via email to