Skip to content

Commit 6e4429e

Browse files
committed
exclude private vars from ns-map
1 parent b8fec2f commit 6e4429e

File tree

2 files changed

+8
-2
lines changed

2 files changed

+8
-2
lines changed

src/sci/impl/namespaces.cljc

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -514,7 +514,11 @@
514514
env @(:env ctx)
515515
refers (get-in env [:namespaces name :refers])
516516
clojure-core (get-in env [:namespaces 'clojure.core])
517-
clojure-core (clean-ns clojure-core)]
517+
clojure-core (clean-ns clojure-core)
518+
clojure-core (into {} (remove (fn [[_ v]]
519+
(and (utils/var? v)
520+
(:private (meta v)))))
521+
clojure-core)]
518522
(merge clojure-core refers)))
519523

520524
(defn sci-ns-refers [sci-ns]

test/sci/namespaces_test.cljc

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -175,7 +175,9 @@
175175
(deftest ns-refers-test
176176
(is (eval* "(some? (get (ns-refers *ns*) 'inc))"))
177177
(is (eval* "(def x 1) (nil? (get (ns-refers *ns*) 'x))"))
178-
(is (eval* "(require '[clojure.string :refer [includes?]]) (some? (get (ns-refers *ns*) 'includes?))")))
178+
(is (eval* "(require '[clojure.string :refer [includes?]]) (some? (get (ns-refers *ns*) 'includes?))"))
179+
(testing "private vars are not referred"
180+
(is (eval* "(every? (fn [[_ v]] (not (:private (meta v)))) (ns-refers *ns*))"))))
179181

180182
(deftest ns-map-test
181183
(is (eval* "(some? (get (ns-map *ns*) 'inc))"))

0 commit comments

Comments
 (0)