[Rd] selectMethod() can fail to find methods in situations of multiple dispatch
Pages, Herve
hp@ge@ @end|ng |rom |redhutch@org
Thu Mar 14 17:32:30 CET 2019
Here is an example:
setGeneric("foo", function(x, y) standardGeneric("foo"))
setMethod("foo", c("numeric", "ANY"),
function(x, y) cat("I'm the foo#numeric#ANY method\n")
)
Dispatch works as expected but selectMethod() fails to find the method:
> foo(1, TRUE)
I'm the foo#numeric#ANY method
> selectMethod("foo", c("numeric", "logical"))
Error in selectMethod("foo", c("numeric", "logical")) :
no method found for signature numeric, logical
Adding an arbitrary method that doesn't have ANY in the signature "fixes" selectMethod():
setMethod("foo", c("complex", "integer"),
function(x, y) cat("I'm the foo#complex#integer method\n")
)
Then:
> selectMethod("foo", c("numeric", "logical"))
Method Definition:
function (x, y)
cat("I'm the foo#numeric#ANY method\n")
Signatures:
x y
target "numeric" "logical"
defined "numeric" "ANY"
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 using fredhutch.org<mailto:hpages using fredhutch.org>
Phone: (206) 667-5791
Fax: (206) 667-1319
[[alternative HTML version deleted]]
More information about the R-devel
mailing list