I was debugging with inspect-tree and noticed that it errors when it encounters a set (it thinks it's not atomic, but then nth produces an UnsupportedOperationException).
I made a small patch (below) that makes inspect-tree work on java.util.Sets, and also anything else that implements clojure.lang.Seqable. If this is of interest, please let me know and I can create an issue. Cheers, Jason Index: src/clj/clojure/inspector.clj =================================================================== --- src/clj/clojure/inspector.clj (revision 1335) +++ src/clj/clojure/inspector.clj (working copy) @@ -20,8 +20,10 @@ (defn collection-tag [x] (cond (instance? java.util.Map$Entry x) :entry - (instance? java.util.Map x) :map + (instance? java.util.Map x) :seqable + (instance? java.util.Set x) :seqable (sequential? x) :seq + (instance? clojure.lang.Seqable x) :seqable :else :atom)) (defmulti is-leaf collection-tag) @@ -42,11 +44,15 @@ (defmethod get-child-count :entry [e] (count (val e))) -(defmethod is-leaf :map [m] +(defmethod is-leaf :seqable [parent] false) -(defmethod get-child :map [m index] - (nth (seq m) index)) +(defmethod get-child :seqable [parent index] + (nth (seq parent) index)) +(defmethod get-child-count :seqable [parent] + (count (seq parent))) (defn tree-model [data] (proxy [TreeModel] [] (getRoot [] data) --~--~---------~--~----~------------~-------~--~----~ 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 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 -~----------~----~----~----~------~----~------~--~---