summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRich Hickey <richhickey@gmail.com>2008-02-18 21:35:19 +0000
committerRich Hickey <richhickey@gmail.com>2008-02-18 21:35:19 +0000
commit09b40d9d45c3e279fb44b1057506675dac59e9db (patch)
tree6f3ee51ab3c1c6c374f40ab5a769955ac7909d17
parent036257426ba2886995ef7b714533ce0734433b3a (diff)
fixed refer NPE on non-existent namespace
-rw-r--r--src/boot.clj20
1 files changed, 10 insertions, 10 deletions
diff --git a/src/boot.clj b/src/boot.clj
index 5cce7fb0..206c5d3b 100644
--- a/src/boot.clj
+++ b/src/boot.clj
@@ -1424,18 +1424,18 @@ ns-imports [#^clojure.lang.Namespace ns]
current namespace. Filters can be used to select a subset, via inclusion or exclusion, or to provide a mapping
to a symbol different from the var's name, in order to prevent clashes."}
refer [ns-sym & filters]
- (let [ns (find-ns ns-sym)
- fs (apply hash-map filters)
- nspublics (ns-publics ns)
- rename (or (:rename fs) {})
- exclude (to-set (:exclude fs))
- to-do (or (:only fs) (keys nspublics))]
+ (let [ns (or (find-ns ns-sym) (throw (new Exception (str "No namespace: " ns-sym))))
+ fs (apply hash-map filters)
+ nspublics (ns-publics ns)
+ rename (or (:rename fs) {})
+ exclude (to-set (:exclude fs))
+ to-do (or (:only fs) (keys nspublics))]
(doseq sym to-do
(when-not (exclude sym)
- (let [v (nspublics sym)]
- (when-not v
- (throw (new java.lang.IllegalAccessError (str sym " is not public"))))
- (. *ns* (refer (or (rename sym) sym) v)))))))
+ (let [v (nspublics sym)]
+ (when-not v
+ (throw (new java.lang.IllegalAccessError (str sym " is not public"))))
+ (. *ns* (refer (or (rename sym) sym) v)))))))
(defn
#^{:doc "Returns a map of the refer mappings for the namespace."}