Skip to content

initFields() method no longer coerces arguments in R-devel

4 messages · Jon Clayden, Simon Urbanek, John Chambers

#
Dear all,

I've just had a package update bounced from CRAN because of a recent
change in R-devel which seems to affect the behaviour of the
initFields() reference class method. (The change must be very recent
because I tested the package on a week-old build of R-devel.) It seems
that the method no longer coerces its arguments to the expected type
of each field. For a simple example:
Error in function (value)  :
  invalid replacement for field ?number?, should be from class
?integer? or a subclass (was class ?NULL?)

(This used to work, with "number" being set to "integer(0)"). In fact
it is now extremely strict, not even allowing a double literal which
is equal to an integer:
Error in function (value)  :
  invalid replacement for field ?number?, should be from class
?integer? or a subclass (was class ?numeric?)

I don't see anything about this in the NEWS, so I was wondering if I
could get clarification on whether this is now the intended behaviour,
before I further modify the package. I must say that this will be a
bit of a pain to "correct"...

All the best,
Jon
#
It's worth actually reading the list you post to ...
http://r.789695.n4.nabble.com/Reference-classes-assignments-to-fields-td3708168.html
On Aug 5, 2011, at 6:41 AM, Jon Clayden wrote:

            
#
There is also an item in the NEWS file:

     Field assignments in reference classes are now consistent with 
slots in S4 classes: the assigned value must come from the declared 
class (if any) for the field or from a subclass.
On 8/5/11 7:24 AM, Simon Urbanek wrote:
#
OK, apologies - on both fronts I obviously searched on the wrong
terms. Sorry to waste your time.

Jon
On 5 August 2011 18:22, John Chambers <jmc at r-project.org> wrote: