Right, the methods package is not attached by default when running R with Rscript. We should probably remove that special case, as it mostly just leads to confusion, but that won't happen immediately.
For now, the S4_extends() should probably throw an error when the methods namespace is not loaded. And the check should be changed to directly check whether R_MethodsNamespace has been set to something other than the default (R_GlobalEnv). Agreed? On Mon, Apr 18, 2016 at 4:35 PM, Kirill Müller <kirill.muel...@ivt.baug.ethz.ch> wrote: > Scenario: An S3 method is declared for an S4 base class but called for an > instance of a derived class. > > Steps to reproduce: > >> Rscript -e "test <- function(x) UseMethod('test', x); test.Matrix <- >> function(x) 'Hi'; MatrixDispatchTest::test(Matrix::Matrix())" > Error in UseMethod("test", x) : > no applicable method for 'test' applied to an object of class "lsyMatrix" > Calls: <Anonymous> > 1: MatrixDispatchTest::test(Matrix::Matrix()) > >> Rscript -e "extends <- 42; test <- function(x) UseMethod('test', x); >> test.Matrix <- function(x) 'Hi'; MatrixDispatchTest::test(Matrix::Matrix())" > [1] "Hi" > > To me, it looks like a sanity check in line 655 of src/main/attrib.c is > making wrong assumptions, but there might be other reasons. > (https://github.com/wch/r-source/blob/780021752eb83a71e2198019acf069ba8741103b/src/main/attrib.c#L655-L656) > > Same behavior in R 3.2.4, R 3.2.5 and R-devel r70420. > > > Best regards > > Kirill > > ______________________________________________ > 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