You seem to think this is a bad thing. R does encourage lenient argument checking... what rock have you been under for the last 20 years?
On March 8, 2020 5:41:51 AM PDT, David Hugh-Jones <davidhughjo...@gmail.com> wrote: >You're quite right :-) But I think the polemic still holds, because I >have >to add manual argument checking to all my methods, which has a cost in >lines of code. Indeed, few base R methods have chosen to do this. In >effect, the current setup encourages writing methods with "lenient" >argument specifications. > >Thank you for the suggestion about ellipsis. > >On Sun, 8 Mar 2020, 11:04 Gábor Csárdi, <csardi.ga...@gmail.com> wrote: > >> You can add the ... argument to chop.default(), and then check that >> length(list(...)) is zero. >> >> Also, you might be interested in the ellipsis package. >> >> Gabor >> >> On Sun, Mar 8, 2020 at 10:56 AM David Hugh-Jones >> <davidhughjo...@gmail.com> wrote: >> > >> > Hi all, >> > >> > My package defines the following method and generic: >> > >> > chop <- function (x, ...) UseMethod("chop") >> > >> > chop.default <- function (x, breaks, labels, extend = NULL, drop = >TRUE) >> { >> > ... } >> > >> > R CMD check then gives a warning: >> > >> > W checking S3 generic/method consistency (695ms) >> > chop: >> > function(x, ...) >> > chop.default: >> > function(x, breaks, labels, extend, drop) >> > >> > See section ‘Generic functions and methods’ in the ‘Writing R >> > Extensions’ manual. >> > >> > I can fix this by adding a ... argument to chop.default: >> > >> > chop.default <- function (x, breaks, labels, extend = NULL, drop = >> > TRUE, ...) >> > >> > But that makes the code less robust because e.g. >> > >> > chop(x, Breaks = 1:3) >> > >> > will no longer throw an error from the misspelled argument. >> > >> > Or I can write: >> > >> > chop(x, breaks, labels, extend, drop) UseMethod("chop") >> > >> > but this means I cannot use a different interface for a different >method. >> > >> > This seems like a mistake. (That's the polemic.) Or am I missing a >better >> > way? (That's the question.) >> > >> > David >> > >> > [[alternative HTML version deleted]] >> > >> > ______________________________________________ >> > R-package-devel@r-project.org mailing list >> > https://stat.ethz.ch/mailman/listinfo/r-package-devel >> > > [[alternative HTML version deleted]] > >______________________________________________ >R-package-devel@r-project.org mailing list >https://stat.ethz.ch/mailman/listinfo/r-package-devel -- Sent from my phone. Please excuse my brevity. ______________________________________________ R-package-devel@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-package-devel