[R-pkg-devel] slightly polemic question re R CMD check
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.gabor at 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 <davidhughjones at 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 at r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-package-devel