You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
The caching mechanism assumes that only the most-specific primary method will be called. If a :toucan is a :bird and a :toucan is a :can, and we have methods for :bird and :can, and :bird is considered more specific, the cache will incorrectly assume that calling the method for :bird is the same as calling the method for :can. Whichever one is invoked first will result in the other getting wrong values. In the normal one-primary-method-only mode the assumption would hold true, but in that assumption is not true for operator method combinations like seq: calling the method for :bird should only give you the result for :bird, while :toucan should give you the result for both :bird and :can.
I'm not sure about the best way to fix this -- we might need some sort of different type of cache for operator method combinations.
As a workaround for the time being we'll have to use uncached multimethods.
The caching mechanism assumes that only the most-specific primary method will be called. If a
:toucan
is a:bird
and a:toucan
is a:can
, and we have methods for:bird
and:can
, and:bird
is considered more specific, the cache will incorrectly assume that calling the method for:bird
is the same as calling the method for:can
. Whichever one is invoked first will result in the other getting wrong values. In the normal one-primary-method-only mode the assumption would hold true, but in that assumption is not true for operator method combinations likeseq
: calling the method for:bird
should only give you the result for:bird
, while:toucan
should give you the result for both:bird
and:can
.I'm not sure about the best way to fix this -- we might need some sort of different type of cache for operator method combinations.
As a workaround for the time being we'll have to use uncached multimethods.
Failing test:
The text was updated successfully, but these errors were encountered: