[R-pkg-devel] R CHECK warning about new S3 generic/method consistency

Duncan Murdoch murdoch@dunc@n @end|ng |rom gm@||@com
Mon Mar 11 19:28:20 CET 2024


On 11/03/2024 2:13 p.m., CRAN.r wrote:
> On Monday, March 11th, 2024 at 12:43 PM, Diego Hernangómez Herrero <diego.hernangomezherrero using gmail.com> wrote:
> 
>> Shouldn’t you include the y argument also inmyscale.default ? Your generic is defining that argument as well.
> 
> I assume (hopefully correctly) that methods don't need to include all the arguments of the generic. I get the same warning if I use "..." instead of y, too.

No, your assumption is backwards.  The methods do need to include all 
arguments of the generic.  As Writing R Extensions says near the start 
of section 7, "A method must have all the arguments of the generic, 
including … if the generic does."

Think about your user.  They'll ask about help for `inmyscale`, and see 
that it has two arguments, x and y.  If x is a type that goes to 
`inmyscale.default`, the user would receive an error when they followed 
the docs and included the y value.

The usual way to handle this is to include both x and y in all methods, 
but document some of them to say that y is ignored.

Duncan Murdoch



More information about the R-package-devel mailing list