[Rd] RFC: Declaring "foo.bar" as nonS3method() ?!

Martin Maechler maechler at stat.math.ethz.ch
Fri Jun 12 10:12:07 CEST 2015


This is a topic ' "apparent S3 methods" note in R CMD check '
from R-package-devel  
     https://stat.ethz.ch/pipermail/r-package-devel/2015q2/000126.html

which is relevant to here because some of us have been thinking
about extending R  because of the issue.

John Fox, maintainer of the 'effects' package has enquired about
the following  output from  'R CMD check effects' 

    >> * checking S3 generic/method consistency ... NOTE
    >> Found the following apparent S3 methods exported but not registered:
    >> all.effects

and added

    >> The offending function, all.effects(), is deprecated in favour of
    >> allEffects(), but I'd rather not get rid of it for backwards compatibility.
    >> Is there any way to suppress the note without removing all.effects()? 

and I had agreed that this was a "False Positive" in this case.

    [.......]

and then

    > Now I agree .. and have e-talked about this with another R core
    > member .. that it would be desirable for the package author to
    > effectively declare the fact that such a function is not an S3
    > method even though it "looks like it" at least if looked from far.

    > So, ideally, you could have something like

    > nonS3method("all.effects")

    > somewhere in your package source ( in NAMESPACE or R/*.R )
    > which would tell the package-checking code -- but *ALSO* all the other S3
    > method code that  all.effects should be treated as a regular R
    > function.

    > I would very much like such a feature in R, and for that reason,
    > I'm cross posting this (as one of the famous exceptions that
    > accompany real-life rules!!) to R-devel.

and actually I did *not* cross post, but have now moved the
relevant part of the thread to  R-devel.

Martin Maechler,
ETH Zurich



More information about the R-devel mailing list