diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/clj/clojure/core.clj | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/src/clj/clojure/core.clj b/src/clj/clojure/core.clj index 397ca177..f44fcb71 100644 --- a/src/clj/clojure/core.clj +++ b/src/clj/clojure/core.clj @@ -3343,7 +3343,10 @@ ([h tag] (not-empty (let [ta (get (:ancestors h) tag)] (if (class? tag) - (into (set (supers tag)) ta) + (let [superclasses (set (supers tag))] + (reduce into superclasses + (cons ta + (map #(get (:ancestors h) %) superclasses)))) ta))))) (defn descendants |