This should now be fixed in r-devel and 3.0.0 Patched as of revision 62487.
On Mar 29, 2013, at 11:30 AM, John Chambers <j...@r-project.org> wrote: > Nothing to do with initFields. If you trace your redefined quote(), it's > called from the <<- assignment of x. > > The "x" element in the environment for the reference class object is > implemented as an active binding in order to enforce the class when assigning > the field. > > Effectively that makes the assignment behave like a reference class method, > and so ends up doing as() and getting back to the malware version of quote(). > > The fix will be to have a more bullet proof (and perhaps more efficient) > version of the active binding generated for fields. A better design anyway, > but this will take a little re-organization because the current default > binding function is generated by some code manipulation. > > Meanwhile the workaround is: Don't do what the revised subject heading says. > > John > > > On Mar 28, 2013, at 11:40 AM, Hadley Wickham <h.wick...@gmail.com> wrote: > >> As suggested by the following code: >> >> A <- setRefClass("A", fields = list(x = "logical"), >> methods = list(initialize = function(...) { >> x <<- FALSE >> initFields(...) >> })) >> A$new() >> # Works as expected >> >> quote <- as.character >> A$new() >> # Error in function (value) : >> # invalid replacement for field ‘x’, should be from class “logical” >> or a subclass (was class “character”) >> >> I get the same error in: >> * R version 2.15.2 (2012-10-26) >> * R version 2.15.3 (2013-03-01) >> * R Under development (unstable) (2013-03-28 r62432) >> >> Hadley >> >> -- >> Chief Scientist, RStudio >> http://had.co.nz/ >> >> ______________________________________________ >> R-devel@r-project.org mailing list >> https://stat.ethz.ch/mailman/listinfo/r-devel > > ______________________________________________ > R-devel@r-project.org mailing list > https://stat.ethz.ch/mailman/listinfo/r-devel ______________________________________________ R-devel@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-devel