diff options
author | Rich Hickey <richhickey@gmail.com> | 2008-02-18 21:35:19 +0000 |
---|---|---|
committer | Rich Hickey <richhickey@gmail.com> | 2008-02-18 21:35:19 +0000 |
commit | 09b40d9d45c3e279fb44b1057506675dac59e9db (patch) | |
tree | 6f3ee51ab3c1c6c374f40ab5a769955ac7909d17 | |
parent | 036257426ba2886995ef7b714533ce0734433b3a (diff) |
fixed refer NPE on non-existent namespace
-rw-r--r-- | src/boot.clj | 20 |
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."} |