Skip to content

Commit 7fbfebe

Browse files
committed
chore: some cleanup
1 parent 6d7f882 commit 7fbfebe

File tree

2 files changed

+17
-12
lines changed

2 files changed

+17
-12
lines changed

src/uclj/core.clj

+12-11
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@
4141
(cond ('#{clojure.core/unquote-splicing} t) (evaling s)
4242
('#{clojure.core/unquote} t) [(evaling s)]
4343
:else [(doall (mapcat unroll expr))]))]
44-
(binding [*template-vars* (eval `(let [~@bindings] ~(do (into {} (for [s (flatten (take-nth 2 bindings))] [(list 'quote s) s])))))]
44+
(binding [*template-vars* (eval `(let [~@bindings] ~(into {} (for [s (flatten (take-nth 2 bindings))] [(list 'quote s) s]))))]
4545
(first (unroll expr)))))
4646

4747
;; Works like an inlined defmacro call: The expression in (template) calls will be the result of the macro expansion.
@@ -118,7 +118,10 @@
118118
:else exp))
119119

120120
(defn- macroexpand-code [&env exp]
121-
(let [e (macroexpand-1-code &env exp)] (if (identical? e exp) exp (recur &env e))))
121+
(let [e (macroexpand-1-code &env exp)]
122+
(if (identical? e exp)
123+
exp
124+
(recur &env e))))
122125

123126
;; return seq of (fn-name ([args*] bodies*)+)
124127
(defn- parsed-fn [[_ & bodies]]
@@ -627,7 +630,7 @@
627630
;; (defmethod enhance-code 'case* [sym->iden [_ value shift mask default-value imap switch-type mode skip-check]])
628631

629632
(defmethod enhance-code clojure.lang.Symbol [sym->iden s]
630-
(if-let [iden (get sym->iden s)]
633+
(if-let [iden (sym->iden s)]
631634
(with-meta s {::symbol-identity iden, ::symbol-used #{iden}})
632635
s))
633636

@@ -671,9 +674,9 @@
671674
::symbol-loop (when (= form 'loop*) (mapv sym->iden (take-nth 2 bindings)))}))))
672675

673676
(defmethod enhance-code 'def [sym->iden [_ var-sym & tail]]
674-
(let [var-sym (vary-meta var-sym (partial reduce-kv (fn [m k v] (assoc m (enhance-code sym->iden k) (enhance-code sym->iden v))) {}))
675-
tail (map (partial enhance-code sym->iden) tail)
676-
all-metas (cons (meta (last tail)) (map meta (mapcat seq (meta var-sym))))]
677+
(let [var-sym (vary-meta var-sym (partial reduce-kv (fn [m k v] (assoc m (enhance-code sym->iden k) (enhance-code sym->iden v))) {}))
678+
tail (map (partial enhance-code sym->iden) tail)
679+
all-metas (map meta (cons (last tail) (mapcat seq (meta var-sym))))]
677680
(with-meta (list* 'def var-sym tail)
678681
{::symbol-used (set (mapcat ::symbol-used all-metas))
679682
::symbol-introduced (set (mapcat ::symbol-introduced all-metas))})))
@@ -693,7 +696,6 @@
693696
{::symbol-used (set (remove new-acc-1 (mapcat (comp ::symbol-used meta) bodies)))
694697
::fn-sym-own (new-acc fname)
695698
::fn-sym-introduced (-> symbol-loop ;; arguments + let vars
696-
; (cond-> fname (conj (new-acc fname)))
697699
(into (set (mapcat (comp ::symbol-introduced meta) bodies))))
698700
::symbol-loop symbol-loop
699701
#_(set (keys new-acc-1))}))]
@@ -705,13 +707,12 @@
705707
(let [bodies (remove (fn [x] (and (seq? x) ('#{finally catch} (first x)))) xs)
706708
catches (filter (fn [x] (and (seq? x) (= 'catch (first x)))) xs)
707709
finally (some (fn [x] (when (and (seq? x) (= 'finally (first x))) x)) xs)
708-
,,,,,
709710
catch-identity (gensym)
710711
bodies (for [body bodies] (enhance-code sym->iden body))
711712
catches (for [[c t e & tail] catches
712713
:let [sym->iden (assoc sym->iden e catch-identity)]]
713714
(list* c t (with-meta e {::symbol-identity catch-identity})
714-
(for [body tail] (enhance-code sym->iden body))))
715+
(map (partial enhance-code sym->iden) tail)))
715716
catch-metas (for [[c t e & tail] catches, x tail] (meta x))
716717
finally-bodies (seq (for [body (next finally)] (enhance-code sym->iden body)))]
717718
(with-meta
@@ -791,10 +792,10 @@
791792
(var-set-reset! #'*2 *1)
792793
(var-set-reset! #'*1 e)
793794
(println e))
794-
(catch Throwable t
795+
(catch Throwable t
795796
(.printStackTrace t)
796797
(var-set-reset! #'*e t)))
797798
(recur))))
798799
(println "EOF, bye!"))))
799800

800-
:OK
801+
:OK

test/clojure_core_test.clj

+5-1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
(ns clojure-core-test
2-
(:require [clojure.test :refer :all]))
2+
(:require [clojure.data.xml]
3+
[clojure.test :refer :all]))
34

45
(deftest test-numbers
56
(clojure.test/is (= 2 (inc 1)))
@@ -44,3 +45,6 @@
4445
(is (= "123" (with-out-str ^{(print 2) (print 3)} [:b (print 1)])))
4546
(is (= "123" (with-out-str ^{(print 2) (print 3)} #{:b (print 1)}))))
4647
(is (= "123" (with-out-str [^{:b ^{:b (print 3)} {:c (print 2)}} [(print 1) 5]]))))
48+
49+
(deftest test-xml-lib
50+
(is (map? (clojure.data.xml/parse-str "<a>1</a>"))))

0 commit comments

Comments
 (0)