Search code examples
roopr6

R6Class bug __Deferred_Default_Marker__


I'm implementing a new R6Class and trying to add new members dynamically (https://cran.r-project.org/web/packages/R6/vignettes/Introduction.html#adding-members-to-an-existing-class) but I get this error "__Deferred_Default_Marker__" (whether it be dynamic or not) when I implement the getx2 function.

Simple <- R6Class("Simple",
                  public = list(
                     x = 1,
                     getx = function() self$x,
                     getx2 = function() return(self$x * 2)
                  )
)

# To replace an existing member, use overwrite=TRUE
Simple$set("public", "x", 10, overwrite = TRUE)

s <- Simple$new()
s$getx2() # this returns "__Deferred_Default_Marker__"

Any ideas on this? It's exactly like in the documentation


Solution

  • The solution was to update the package. The problem with the following instruction:

    devtools::install_github('r-lib/R6', build_vignettes = FALSE)
    

    was it threw me the following error: namespace 'R6' is imported by 'CompatibilityAPI', 'mrsdeploy' so cannot be unloaded"

    so i closed RStudio, and opened R.exe (C:\Program Files\R\R-3.3.3\bin) and ran the same command. Now, I have this package:

    Package: R6
    Version: 2.2.2.9000
    URL: https://github.com/r-lib/R6/
    

    and it works as in the specification.