A related but slightly different issue: is prefer-method supposed to be 
transitive?
That is,  (prefer-method f a b) and  (prefer-method f b c) implies 
(prefer-method f a c)?
Here is a unit test that checks for transitivity (which fails in Clojure 
1.8.0):

(test/deftest transitive
  (derive ::transitive-d ::transitive-a)
  (derive ::transitive-d ::transitive-c)
  (defmulti transitive identity)
  (defmethod transitive ::transitive-a [x] [::transitive-a x]) 
  (defmethod transitive ::transitive-c [x] [::transitive-c x]) 
  (prefer-method transitive ::transitive-a ::transitive-b)
  (prefer-method transitive ::transitive-b ::transitive-c)
  (test/is (= [::transitive-a ::transitive-d] 
              (transitive ::transitive-d))))


-- 
You received this message because you are subscribed to the Google
Groups "Clojure" group.
To post to this group, send email to clojure@googlegroups.com
Note that posts from new members are moderated - please be patient with your 
first post.
To unsubscribe from this group, send email to
clojure+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/clojure?hl=en
--- 
You received this message because you are subscribed to the Google Groups 
"Clojure" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to clojure+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to