Re: [Rd] new.env does not recognize parents from subclasses of "environment"

From: Vitally S. <>
Date: Thu, 21 Oct 2010 18:00:01 +0200

Here is an infinite recursion error which occurs only with S4 subclasses assignment.

 setClass("myenv", contains = "environment") #[1] "myenv"
 env <- new("myenv")
 env[[".me"]] <- env@.xData
#Error: evaluation nested too deeply: infinite recursion / options(expressions=)?  

With basic types it works as expected:

env1 <- new.env()
env1[[".me"]] <- env1

May be this is related to active bindings that you mentioned, but I am still reporting it here.


> Thanks for the report. Should now be fixed in r-devel and 2.12 patched (rev 53383).
> Please do report any cases where a subclass of environment doesn't work. There are some known cases in locking and
> active binding, that will be fixed in due course.
> The workaround for any such problem is usually as.environment().
> On 10/20/10 3:17 AM, Vitaly S. wrote:
>> Dear Developers,
>> A lot has been changed in the R12.0 with respect to behavior of "environment"
>> subclasses. Many thanks for that.
>> One small irregularity, though; new.env does not allow the parent to be from S4
>> subclass.
>>> setClass("myenv", contains="environment")
>> [1] "myenv"
>>> new.env(parent=new("myenv"))
>> Error in new.env(parent = new("myenv")) : 'enclos' must be an environment
>> I wonder if this is a "planed" behavior.
>> The use of .xData slot obviously works:
>>> new.env(parent=new("myenv")@.xData)
>> <environment: 063bb9e8>
>> Thanks,
>> Vitaly.
>> ______________________________________________
>> mailing list
>>> mailing list Received on Thu 21 Oct 2010 - 16:10:41 GMT

Archive maintained by Robert King, hosted by the discipline of statistics at the University of Newcastle, Australia.
Archive generated by hypermail 2.2.0, at Thu 21 Oct 2010 - 16:50:11 GMT.

Mailing list information is available at Please read the posting guide before posting to the list.

list of date sections of archive