Dear UseRs,
Setting methods for groups ("compare" in this case) does not work
properly. Once one method is set ,redefining it or even removing does not
change the behavior:
setClass("foo"
,representation(range="numeric")
)
#[1] "foo"
setMethod("Compare",c(e1="ANY",e2="foo"),
function(e1,e2){
browser()
callGeneric(e1,e2 at range)
})
#[1] "Compare"
o<-new("foo",range=c(1,2))
2>o
#Called from: 2 > o
#Browse[1]>
#[1] TRUE FALSE ##Enters browser as expected !!!
# Now, remove browser()
setMethod("Compare",c(e1="ANY",e2="foo"),
function(e1,e2){
callGeneric(e1,e2 at range)
})
2>o
#Called from: 2 > o
#Browse[1]> ######## Oups, the old function is executed here?????????
########
#[1] TRUE FALSE
selectMethod(">=",c(class(2),class(o)),optional=T) ### Shows
real
method!!!!!
#function (e1, e2)
#{
# callGeneric(e1, e2 at range)
#}
#
#Signatures:
# e1 e2
#target "numeric" "foo"
#defined "ANY" "foo"
removeMethod("Compare",c(e1="ANY",e2="foo"))
#[1] TRUE
2>o
##Called from: 2 > o ### What?? Even after removing method the first
defined
### method is still there!!!!
#Browse[1]>
#[1] TRUE FALSE
I tried this under Windows Xp in 2.8 and 2.9.0.
Vitalie.