Terry,
NEWS: CHANGES IN R 4.0.0 NEW FEATURES
\item S3 method lookup now by default skips the elements of the
search path between the global and base environments.
If you use attach(), S3 methods are hence no longer dispatched to (because it is
between global and base) unless you register them using .S3method(). Without
registration you have to load them into the global env for them to work since
this is now the only environment that doesn't require registration.
Cheers,
Simon
> On Mar 16, 2021, at 7:19 AM, Therneau, Terry M., Ph.D. via R-devel
<r-devel at r-project.org> wrote:
>
> This change in R-devel just bit me. Under the newest release, if I
attach() another
> .RData directory, the methods are not detected.
> Was it intentional? Running in Linux. Here is a script of an example
that works fine
> under 3.6.2. but fails in R-devel.
>
> tmt% mkdir temp1
> tmt% cd temp1
> tmt% R
> # define a silly method, just for testing
>
> charlie <- function(x, ...)
> UseMethod("charlie")
>
>
> charlie.default <- function(x, ...) {
> cat("default method ", x, "\n")
> x +2
> }
>
> charlie.character <- function(x, ...) {
> cat("character method ", x, "\n")
> as.character(as.numeric(x) + 2)
> }
>
>> quit("yes")
>
> tmt% cd ..
> tmt% R
>> attach("temp1/.RData")
>> charlie( 4)
> Error in UseMethod("charlie") :
> no applicable method for 'charlie' applied to an object of class
"c('double', 'numeric')"
>
> ----------------------------------------
>
> The use case was my local test environment for the survival package. I can
work around it.
>
> --
> Terry M Therneau, PhD
> Department of Health Science Research
> Mayo Clinic
> therneau at mayo.edu
>
> "TERR-ree THUR-noh"
>
>
> [[alternative HTML version deleted]]
>
> ______________________________________________
> R-devel at r-project.org mailing list
> https://stat.ethz.ch/mailman/listinfo/r-devel
>