Another oddity - even though there's an error thrown in assignment to x$y$z, the assignment succeeds.
x <- new.env() x$y <- new.env() lockEnvironment(x, bindings = TRUE) x$y$z <- 1 # Error in x$y$z <- 1 : cannot change value of locked binding for 'y' x$y$z # [1] 1 So I assume there must be a bug somewhere in here. -Winston On Sun, Aug 10, 2014 at 8:46 PM, Winston Chang <winstoncha...@gmail.com> wrote: > If an environment x contains a locked binding y which is also an > environment, and then you try to assign a value to a binding inside of > y, it can either succeed or fail, depending on how you refer to > environment y. > > x <- new.env() > x$y <- new.env() > lockEnvironment(x, bindings = TRUE) > > # This assignment fails > x$y$z <- 1 > # Error in x$y$z <- 1 : cannot change value of locked binding for 'y' > > # Saving x$y to another variable, and then assigning there works > y2 <- x$y > y2$z <- 10 # OK > print(x$y$z) > # 10 > > > Is this a bug or a feature? I realize that x$y is a locked binding > while y2 is not. > > -Winston > [[alternative HTML version deleted]] ______________________________________________ R-devel@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-devel