I have encountered an issue which I have been unable to resolve, involving an S3 generic (print) being declared S4 generic in a package, and the method being exported. This all works fine - the problem occurs when I try to import the method to another package.
Here is the bit that works fine. ------------- #the .r file for package bar setClass("bar",representation("numeric")) if(!isGeneric("print")) {setGeneric("print",useAsDefault=print)} setMethod("print",signature(x="bar"), print.bar <- function(x,...) { print("print method for bar") print([EMAIL PROTECTED],...) } ) if(!isGeneric("barprint")) {setGeneric("barprint",useAsDefault=print)} setMethod("barprint",signature(x="bar"), printBar <- function(x,...) { print("barprint method for bar") print([EMAIL PROTECTED],...) } ) #the NAMESPACE file for package bar import(methods) exportMethods(barprint,print) exportClasses("bar") #then in R: > require(barpkg) Loading required package: barpkg [1] TRUE > x <- new("bar",99) > print(x) [1] "print method for bar" [1] 99 > barprint(x) [1] "barprint method for bar" [1] 99 Fine. Here is the bit that I have not figured out. ------------- #the .r file for package waz wazbar <- function(x) { barprint(new("bar",x)) } #the NAMESPACE file for package waz import(methods,barpkg) importMethodsFrom(barpkg) importClassesFrom(barpkg) export(wazbar) #then in R > require(wazpkg) Loading required package: wazpkg [1] TRUE > wazbar(99) Error in .setMethodsForDispatch(f, fdef, resetMlist) : Internal error: did not get a valid generic function object for function "print" Error in print("barprint method for bar") : S language method selection got an error when called from internal dispatch for function "print" end of R bit --------------------------- The problem goes away if I don't set print as an S4 generic in bar. Can anyone help - maybe an error is obvious? As a bit of background, I am package maintainer for its (Irregular Time-Series), and have been obliged to put it in a namespace or suffer a significant performance penalty (about 6x slower). In the package I make S3 generics (plot, print, summary etc) S4 generic in this package, and so far have not got into trouble for doing so. However, I have now got stuck - possibly I have not seen the right documentation (I refer to the newsletter article, and John Chambers' correspondence on R-devel early September). - Giles platform i386-pc-mingw32 arch i386 os mingw32 system i386, mingw32 status major 1 minor 8.1 year 2003 month 11 day 21 language R Rcmd install --doc="none" barpkg ********************************************************************** This is a commercial communication from Commerzbank AG.\ \ T...{{dropped}} ______________________________________________ [EMAIL PROTECTED] mailing list https://www.stat.math.ethz.ch/mailman/listinfo/r-devel