Skip to content

Commit 5237cda

Browse files
committed
fix: clojure.core/eval
1 parent 40f2439 commit 5237cda

File tree

1 file changed

+13
-15
lines changed

1 file changed

+13
-15
lines changed

src/uclj/core.clj

+13-15
Original file line numberDiff line numberDiff line change
@@ -531,10 +531,6 @@
531531
(let [e (->eval-node &a nil e)]
532532
(gen-eval-node (throw (evalme e &b)))))
533533

534-
(defmethod seq->eval-node 'clojure.core/eval [&a _ [_ e]]
535-
(let [e (->eval-node &a nil e)]
536-
(gen-eval-node (-> e (evalme &b) (evalme nil)))))
537-
538534
(defmethod seq->eval-node 'var [&a _ [_ v]]
539535
(let [x (resolve v)]
540536
(assert x (str "Unable to resolve var: " (pr-str v) " in this context in ns " *ns*))
@@ -695,8 +691,8 @@
695691
(mapcat (comp ::symbol-used meta)
696692
(concat bodies (take-nth 2 (next bindings))))))
697693
symbol-introduced (-> introduced-idents
698-
(into (mapcat (comp ::symbol-introduced meta) bodies))
699-
(into (mapcat (comp ::symbol-introduced meta) bindings)))]
694+
(into (mapcat (comp ::symbol-introduced meta)) bodies)
695+
(into (mapcat (comp ::symbol-introduced meta)) bindings))]
700696
(with-meta (list* form bindings bodies)
701697
{::symbol-used symbol-used
702698
::symbol-introduced symbol-introduced
@@ -753,15 +749,15 @@
753749
catches
754750
(when finally-bodies [(list* 'finally finally-bodies)]))
755751
{::symbol-used (-> #{}
756-
(into (mapcat (comp ::symbol-used meta) bodies))
757-
(into (mapcat ::symbol-used catch-metas))
758-
(into (mapcat (comp ::symbol-used meta) finally-bodies))
752+
(into (mapcat (comp ::symbol-used meta)) bodies)
753+
(into (mapcat ::symbol-used) catch-metas)
754+
(into (mapcat (comp ::symbol-used meta)) finally-bodies)
759755
(->> (remove #{catch-identity}))
760756
(set))
761757
::symbol-introduced (-> #{}
762-
(into (mapcat (comp ::symbol-introduced meta) bodies))
763-
(into (mapcat ::symbol-introduced catch-metas))
764-
(into (mapcat (comp ::symbol-introduced meta) finally-bodies))
758+
(into (mapcat (comp ::symbol-introduced meta)) bodies)
759+
(into (mapcat ::symbol-introduced) catch-metas)
760+
(into (mapcat (comp ::symbol-introduced meta)) finally-bodies)
765761
(cond-> (seq catches) (conj catch-identity)))})))
766762

767763
(defmethod enhance-code 'letfn* [sym->iden [letfn* bindings & bodies]]
@@ -772,12 +768,12 @@
772768
bodies (for [body bodies] (enhance-code sym->iden body))
773769
symbol-added (set (map (comp ::symbol-identity meta first) binding-pairs))
774770
symbol-used (-> #{}
775-
(into (mapcat (comp ::symbol-used meta second) binding-pairs))
776-
(into (mapcat (comp ::symbol-used meta) bodies))
771+
(into (mapcat (comp ::symbol-used meta second)) binding-pairs)
772+
(into (mapcat (comp ::symbol-used meta)) bodies)
777773
(->> (remove symbol-added))
778774
(set))
779775
symbol-introduced (-> #{}
780-
(into (mapcat (comp ::symbol-introduced meta) bodies))
776+
(into (mapcat (comp ::symbol-introduced meta)) bodies)
781777
(into symbol-added))]
782778
(with-meta
783779
(list* letfn* (vec (apply concat binding-pairs)) bodies)
@@ -792,6 +788,8 @@
792788
;; array is empty yet.
793789
(evalme node nil)))
794790

791+
(custom-var! #'clojure.core/eval evaluator)
792+
795793
(defn- all-test-namespaces []
796794
(for [ns (all-ns)
797795
:when (or (ns-resolve ns 'test-ns-hook)

0 commit comments

Comments
 (0)