From wdunl@p @ending from tibco@com  Thu Jan 10 17:30:00 2019
From: wdunl@p @ending from tibco@com (William Dunlap)
Date: Thu, 10 Jan 2019 08:30:00 -0800
Subject: [Rd] setClass accepts slot-mismatch between slots and prototype
 arguments
Message-ID: <CAF8bMcbPCvsWx2o3iTHpXGFAT=azDdMZXz7Uiznr_jOZBbyKcw@mail.gmail.com>

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

	[[alternative HTML version deleted]]



[Rd] setClass accepts slot-mismatch between slots and prototype arguments
William Dunlap