Problems with S4 methods dispatching on `...` (aka dotsMethods)
I pushed the patch to the 3.4 branch. Feel free to test. Michael
On Wed, Jul 26, 2017 at 4:02 AM, Andrzej Ole? <andrzej.oles at gmail.com> wrote:
Hi Michael, it seems that your patch to S4 generics dispatching on `...` is still available only in R-devel, and was not included in the minor R-3.4.1 release. I was wondering what is the policy of incorporating bug fixes from the devel branch into release, and whether there is any chance that the broken `...` dispatch is fixed before R-3.5.0? Cheers, Andrzej On Tue, Apr 25, 2017 at 4:15 PM, Andrzej Ole? <andrzej.oles at gmail.com> wrote:
You're right, I must have mixed up my R versions when running the example, as the problem seems to be resolved in R-devel. Sorry for the noise and thanks again for fixing this. Andrzej On Tue, Apr 25, 2017 at 3:55 PM, Michael Lawrence <lawrence.michael at gene.com> wrote:
I attempted to fix it, and that example seems to work for me. It's also a (passing) regression test in R. Are you sure you're using a new enough R-devel? On Tue, Apr 25, 2017 at 2:34 AM, Andrzej Ole? <andrzej.oles at gmail.com> wrote:
Hi Michael,
thanks again for your patch! I've tested it and I'm happy to confirm
that
`callNextMethod()` works with methods dispatching on `...`.
However, the second issue I reported still seems to be unresolved.
Consider
the following toy example, where the `f()` calls differ in result
depending
on whether the dispatch happens on a formal argument or the `...`
argument.
f = function(x, ..., a = b) {
b = "missing 'a'"
print(a)
}
f()
## [1] missing 'a'
f(a = 1)
## [1] 1
setGeneric("f", signature = "x")
# works as the non-generic version
f()
## [1] missing 'a'
setGeneric("f", signature = "...")
# unexpectedly fails to find 'b'
f()
## Error in print(a) : object 'b' not found
Any chances of fixing this?
Cheers,
Andrzej
On Fri, Apr 21, 2017 at 11:40 AM, Andrzej Ole? <andrzej.oles at gmail.com>
wrote:
Great, thanks Michael for you quick response! I started off with a question on SO because I was not sure whether this was an actual bug or I was just missing something obvious. I'm looking forward to the patch. Cheers, Andrzej On Thu, Apr 20, 2017 at 10:28 PM, Michael Lawrence <lawrence.michael at gene.com> wrote:
Thanks for pointing out these issues. I have a fix that I will commit soon. Btw, I would never have seen the post on Stack Overflow. It's best to report bugs on the bugzilla. Michael On Thu, Apr 20, 2017 at 8:30 AM, Andrzej Ole? <andrzej.oles at gmail.com> wrote:
Hi all, I recently encountered some unexpected behavior with S4 generics dispatching on `...`, which I described in http://stackoverflow.com/questions/43499203/use-callnextmethod-with-dotsmethods TL;DR: `callNextMethod()` doesn't work in methods dispatching on `...`, and arguments of such methods are resolved differently than the arguments of methods dispatching on formal arguments. Could this indicate a potential problem with the implementation of the `...` dispatch? Cheers, Andrzej [[alternative HTML version deleted]]
______________________________________________ R-devel at r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-devel