From andrzej.oles at gmail.com  Tue Apr 25 11:34:39 2017
From: andrzej.oles at gmail.com (=?UTF-8?Q?Andrzej_Ole=C5=9B?=)
Date: Tue, 25 Apr 2017 11:34:39 +0200
Subject: [Rd] Problems with S4 methods dispatching on `...` (aka
	dotsMethods)
In-Reply-To: <CAH7mKkgwa_7FRChyrxmKf8Ub_mDtX-WfREq-A4FbCvanQt8zpg@mail.gmail.com>
References: <CAH7mKkiZNJ_W8EsbEvobHmj1wHDcE2NmYVTuPq8Uxc+aGC6YOw@mail.gmail.com>
 <CAOQ5Nye8nD0FK5vuuz83i+5nEOomezMZx0iDjJ6ZKWK9M4Xk_w@mail.gmail.com>
 <CAH7mKkgwa_7FRChyrxmKf8Ub_mDtX-WfREq-A4FbCvanQt8zpg@mail.gmail.com>
Message-ID: <CAH7mKkgSFg8ki8sS4NXwrnv0m6hL4f_gePAK0SQnnhtGrvu88A@mail.gmail.com>

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-callnextmeth
>> od-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
>>
>
>

	[[alternative HTML version deleted]]



[Rd] Problems with S4 methods dispatching on `...` (aka dotsMethods)
=?UTF-8?Q?Andrzej_Ole=C5=9B?=