From 534ae4ebf46fab83bc0389062fd0c2236c4cd7ae Mon Sep 17 00:00:00 2001 From: Michiel Borkent Date: Fri, 13 Sep 2024 15:38:48 +0200 Subject: [PATCH] strip core symbol --- src/cherry/compiler.cljc | 37 +++++++++++++++++++------------------ 1 file changed, 19 insertions(+), 18 deletions(-) diff --git a/src/cherry/compiler.cljc b/src/cherry/compiler.cljc index 6743183..c6b6ba1 100644 --- a/src/cherry/compiler.cljc +++ b/src/cherry/compiler.cljc @@ -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))) @@ -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)])