[Rd] False positive note about ambiguous dispatch

From: Hervé Pagès <hpages_at_fhcrc.org>
Date: Mon, 01 Oct 2012 15:20:09 -0700


Hi,

In the situation below the note issued by the dispatch algo doesn't seem right:

   setClass("A", representation(stuff="complex"))    setAs("ANY", "A", function(from) new("A", stuff=as.complex(from)))

> as(6, "A")

   An object of class "A"
   Slot "stuff":
   [1] 6+0i

> as(6L, "A")

   Note: Method with signature ‘numeric#A’ chosen for function ‘coerce’,   target signature ‘integer#A’.
    "ANY#A" would also be valid
   An object of class "A"
   Slot "stuff":
   [1] 6+0i

First thing is that the note is in contradiction with the output of selectMethod (seems like it's the method with signature "ANY#A" that was chosen, not the method with signature "numeric#A"):

> selectMethod("coerce", c("integer", "A"))
   Method Definition:

   function (from, to = "A", strict = TRUE)    new("A", stuff = as.complex(from))

   Signatures:

           from to
   target "integer" "A"
   defined "ANY" "A"

Second, and more importantly, there is no need for a note in the first place because there is no ambiguity at all (the method for "numeric#A" itself is inherited from "ANY#A"):

> selectMethod("coerce", c("numeric", "A"))
   Method Definition:

   function (from, to = "A", strict = TRUE)    new("A", stuff = as.complex(from))

   Signatures:

           from to
   target "numeric" "A"
   defined "ANY" "A"

showMethod gives me an overview of the situation (which is much simpler/cleaner than what the note is suggesting):

> showMethods("coerce")

   Function: coerce (package methods)
   from="ANY", to="A"
   ...
   from="integer", to="A"

       (inherited from: from="ANY", to="A")    ...
   from="numeric", to="A"

       (inherited from: from="ANY", to="A")

Finally, if I switch the order (i.e. if I do 'as(6L, "A")' before 'as(6, "A")'), I don't get the note.

I get this with R 2.15.1 and a recent R devel (2012-09-22 r60777). It looks like a regression because I was not able to reproduce with R <= 2.14.

Thanks,
H.

-- 
Hervé Pagès

Program in Computational Biology
Division of Public Health Sciences
Fred Hutchinson Cancer Research Center
1100 Fairview Ave. N, M1-B514
P.O. Box 19024
Seattle, WA 98109-1024

E-mail: hpages_at_fhcrc.org
Phone:  (206) 667-5791
Fax:    (206) 667-1319

______________________________________________
R-devel_at_r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-devel
Received on Mon 01 Oct 2012 - 22:23:14 GMT

This quarter's messages: by month, or sorted: [ by date ] [ by thread ] [ by subject ] [ by author ]

All messages

Archive maintained by Robert King, hosted by the discipline of statistics at the University of Newcastle, Australia.
Archive generated by hypermail 2.2.0, at Thu 18 Oct 2012 - 14:20:46 GMT.

Mailing list information is available at https://stat.ethz.ch/mailman/listinfo/r-devel. Please read the posting guide before posting to the list.

list of date sections of archive