summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/clj/clojure/core.clj23
1 files changed, 13 insertions, 10 deletions
diff --git a/src/clj/clojure/core.clj b/src/clj/clojure/core.clj
index 0a2a39ae..d1b4b8e4 100644
--- a/src/clj/clojure/core.clj
+++ b/src/clj/clojure/core.clj
@@ -3229,6 +3229,15 @@
[ns]
(filter-key val (partial instance? Class) (ns-map ns)))
+(defn ns-interns
+ "Returns a map of the intern mappings for the namespace."
+ {:added "1.0"}
+ [ns]
+ (let [ns (the-ns ns)]
+ (filter-key val (fn [^clojure.lang.Var v] (and (instance? clojure.lang.Var v)
+ (= ns (.ns v))))
+ (ns-map ns))))
+
(defn refer
"refers to all public vars of ns, subject to filters.
filters can include at most one each of:
@@ -3256,7 +3265,10 @@
(when-not (exclude sym)
(let [v (nspublics sym)]
(when-not v
- (throw (new java.lang.IllegalAccessError (str sym " is not public"))))
+ (throw (new java.lang.IllegalAccessError
+ (if (get (ns-interns ns) sym)
+ (str sym " is not public")
+ (str sym " does not exist")))))
(. *ns* (refer (or (rename sym) sym) v)))))))
(defn ns-refers
@@ -3268,15 +3280,6 @@
(not= ns (.ns v))))
(ns-map ns))))
-(defn ns-interns
- "Returns a map of the intern mappings for the namespace."
- {:added "1.0"}
- [ns]
- (let [ns (the-ns ns)]
- (filter-key val (fn [^clojure.lang.Var v] (and (instance? clojure.lang.Var v)
- (= ns (.ns v))))
- (ns-map ns))))
-
(defn alias
"Add an alias in the current namespace to another
namespace. Arguments are two symbols: the alias to be used, and