[Rd] parent.frame(1) of a S4 method is not a calling environment.

Vitaly S. spinuvit.list at gmail.com
Tue Aug 17 00:30:53 CEST 2010


Martin Morgan <mtmorgan at fhcrc.org> writes:
>> 
>> So,  can I be sure that for such functions parent.frame(2) will always work?
>> What are the additional rules?
>
> callNextMethod() will cause additional problems; the idea that you'll
> grab things from somewhere other than function arguments doesn't seem
> like a robust design, even if it's used in some important parts of R.
>
> Martin
>

That make it difficult to handle unevaluated expressions in methods. A solution
would be to explicitly require the users to use quote() or expression(),  and
then to use the "expression" in the signature. Slightly unpleasant, though.

Standardised, simpler syntax like .() in  ggplot and plyr,  would be handy here.
Hopefully .() is not grabbed for something else in meanwhile:).

Vitaly.



More information about the R-devel mailing list