Skip to content

Commit

Permalink
strip core symbol
Browse files Browse the repository at this point in the history
  • Loading branch information
borkdude committed Sep 13, 2024
1 parent 645c48c commit 534ae4e
Showing 1 changed file with 19 additions and 18 deletions.
37 changes: 19 additions & 18 deletions src/cherry/compiler.cljc
Original file line number Diff line number Diff line change
Expand Up @@ -181,7 +181,8 @@
(let [sym-ns (namespace sym)]
(if (and sym-ns
(or (= "clojure.core" sym-ns)
(= "cljs.core" sym-ns)))
(= "cljs.core" sym-ns)
(= "cherry.core" sym-ns)))
(symbol (name sym))
sym)))

Expand All @@ -205,23 +206,23 @@
expr)
head-str (str head)
macro (when (symbol? head)
(or (built-in-macros head)
(let [ns (namespace head)
nm (name head)
ns-state @(:ns-state env)
current-ns (:current ns-state)
nms (symbol nm)
current-ns-state (get ns-state current-ns)]
(if ns
(let [nss (symbol ns)]
(or
;; used by cherry embed:
(some-> env :macros (get nss) (get nms))
(let [resolved-ns (get-in current-ns-state [:aliases nss] nss)]
(get-in ns-state [:macros resolved-ns nms]))))
(let [refers (:refers current-ns-state)]
(when-let [macro-ns (get refers nms)]
(get-in ns-state [:macros macro-ns nms])))))))]
(or (built-in-macros (strip-core-symbol head))
(let [ns (namespace head)
nm (name head)
ns-state @(:ns-state env)
current-ns (:current ns-state)
nms (symbol nm)
current-ns-state (get ns-state current-ns)]
(if ns
(let [nss (symbol ns)]
(or
;; used by cherry embed:
(some-> env :macros (get nss) (get nms))
(let [resolved-ns (get-in current-ns-state [:aliases nss] nss)]
(get-in ns-state [:macros resolved-ns nms]))))
(let [refers (:refers current-ns-state)]
(when-let [macro-ns (get refers nms)]
(get-in ns-state [:macros macro-ns nms])))))))]
(if macro
(let [;; fix for calling macro with more than 20 args
#?@(:cljs [macro (or (.-afn ^js macro) macro)])
Expand Down

0 comments on commit 534ae4e

Please sign in to comment.