File tree Expand file tree Collapse file tree 1 file changed +14
-2
lines changed
Expand file tree Collapse file tree 1 file changed +14
-2
lines changed Original file line number Diff line number Diff line change 767767 false ))
768768 (not (contains? (-> env :ns :excludes ) sym))))
769769
770+ (defn public-name?
771+ " Is sym public?"
772+ #? (:cljs {:tag boolean})
773+ [ns sym]
774+ (let [var-ast (or (gets @env/*compiler* ::namespaces ns :defs sym)
775+ #?(:clj (gets @env/*compiler* ::namespaces ns :macros sym)
776+ :cljs (gets @env/*compiler* ::namespaces (symbol (str (name ns ) " $macros" )) :defs sym)))]
777+ (and (some? var-ast)
778+ (not (or (:private var-ast)
779+ (:anonymous var-ast))))))
780+
770781(defn js-tag? [x]
771782 (and (symbol? x)
772783 (or (= 'js x)
13541365 (let [env (if (or (and (not= ns-name 'cljs.core)
13551366 (core-name? env sym))
13561367 (some? (get-in @env/*compiler* [::namespaces ns-name :uses sym])))
1357- (let [ev (resolve-existing-var (dissoc env :locals ) sym)
1368+ (let [ev (resolve-existing-var (dissoc env :locals ) ( with-meta sym { ::no-resolve true }) )
13581369 conj-to-set (fnil conj #{})]
1359- (warning :redef env {:sym sym :ns (:ns ev) :ns-name ns-name})
1370+ (when (public-name? (:ns ev) sym)
1371+ (warning :redef env {:sym sym :ns (:ns ev) :ns-name ns-name}))
13601372 (swap! env/*compiler* update-in [::namespaces ns-name :excludes ]
13611373 conj-to-set sym)
13621374 (update-in env [:ns :excludes ] conj-to-set sym))
You can’t perform that action at this time.
0 commit comments