From h@w|ckh@m @end|ng |rom gm@||@com  Thu Aug 10 15:46:42 2023
From: h@w|ckh@m @end|ng |rom gm@||@com (Hadley Wickham)
Date: Thu, 10 Aug 2023 08:46:42 -0500
Subject: [Rd] Improving user-friendliness of S4 dispatch failure when
 mis-naming arguments?
In-Reply-To: <CAD7Bkx8Y44Gy=sW+mMfyXqpg3gcGKojS9A0zbrHzF_qqJsvYAg@mail.gmail.com>
References: <CAD7Bkx8Y44Gy=sW+mMfyXqpg3gcGKojS9A0zbrHzF_qqJsvYAg@mail.gmail.com>
Message-ID: <CABdHhvHjJZmGCyb2okOGCOqBO+e2HA7taxqfGE-OPRgq_GCU0Q@mail.gmail.com>

Hi Michael,

I can't help with S4, but I can help to make sure this isn't a problem
with S7. What do you think of the current error message? Do you see
anything obvious we could do to improve?

library(S7)

dbGetQuery <- new_generic("dbGetQuery", c("conn", "statement"))
dbGetQuery(connection = NULL, query = NULL)
#> Error: Can't find method for generic `dbGetQuery(conn, statement)`:
#> - conn     : MISSING
#> - statement: MISSING

Hadley

On Wed, Aug 9, 2023 at 10:02?PM Michael Chirico via R-devel
<r-devel at r-project.org> wrote:
>
> I fielded a debugging request from a non-expert user today. At root
> was running the following:
>
> dbGetQuery(connection = conn, query = query)
>
> The problem is that they've named the arguments incorrectly -- it
> should have been [1]:
>
> dbGetQuery(conn = conn, statement = query)
>
> The problem is that the error message "looks" highly confusing to the
> untrained eye:
>
> Error in (function (classes, fdef, mtable)  :   unable to find an
> inherited method for function ?dbGetQuery? for signature ?"missing",
> "missing"?
>
> In retrospect, of course, this makes sense -- the mis-named arguments
> are getting picked up by '...', leaving the required arguments
> missing.
>
> But I was left wondering how we could help users right their own ship here.
>
> Would it help to mention the argument names? To include some code
> checking for weird combinations of missing arguments? Any other
> suggestions?
>
> Mike C
>
> [1] https://github.com/r-dbi/DBI/blob/97934c885749dd87a6beb10e8ccb6a5ebea3675e/R/dbGetQuery.R#L62-L64
>
> ______________________________________________
> R-devel at r-project.org mailing list
> https://stat.ethz.ch/mailman/listinfo/r-devel



-- 
http://hadley.nz



[Rd] Improving user-friendliness of S4 dispatch failure when mis-naming arguments?
Hadley Wickham