The bug might be here:
is.null(expression())
[1] TRUE But
is.null(expression(NULL))
[1] FALSE So it might look to the methods package like you're passing in a NULL value for @bar. I might argue that expression() should not be NULL (and only NULL is NULL) as I have had similar trouble trying to extend language objects to S4 classes, partially because length 0 name, call and expression objects are either not available, or in this case, handled poorly. Robert -----Original Message----- From: Duncan Murdoch [mailto:murdoch@stats.uwo.ca] Sent: Monday, June 06, 2005 4:58 PM To: Peter Dalgaard Cc: r-devel@stat.math.ethz.ch Subject: Re: [Rd] Bug in new() or validObject() in methods package (PR#7922)
On 6/6/2005 4:55 PM, Peter Dalgaard wrote:
murdoch@stats.uwo.ca writes:
Is it doing an extra eval or something? It looks like it:
> x <- expression() > x
expression()
> eval(x)
NULL
> > x <- quote(expression()) > x
expression()
> eval(x)
expression()
> eval(eval(x))
NULL
You do realize that the two expression() results are not identical:
x <- quote(expression()) class(x)
[1] "call"
x <- expression() class(x)
[1] "expression" Not that I can fathom what bearing that has on the real problem...
I figured they weren't identical, given that they gave different results when eval'd, but I didn't know what the difference was exactly. Thanks! Duncan ______________________________________________ R-devel@stat.math.ethz.ch mailing list https://stat.ethz.ch/mailman/listinfo/r-devel