summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/clj/clojure/core.clj8
-rw-r--r--test/clojure/test_clojure/ns_libs.clj8
2 files changed, 16 insertions, 0 deletions
diff --git a/src/clj/clojure/core.clj b/src/clj/clojure/core.clj
index bec3f2af..e2cf386e 100644
--- a/src/clj/clojure/core.clj
+++ b/src/clj/clojure/core.clj
@@ -4206,6 +4206,14 @@
(let [flags (filter keyword? args)
opts (interleave flags (repeat true))
args (filter (complement keyword?) args)]
+ ; check for unsupported options
+ (let [supported #{:as :reload :reload-all :require :use :verbose}
+ unsupported (seq (remove supported flags))]
+ (throw-if unsupported
+ (apply str "Unsupported option(s) supplied: "
+ (interpose \, unsupported))))
+ ; check a load target was specified
+ (throw-if (not (seq args)) "Nothing specified to load")
(doseq [arg args]
(if (libspec? arg)
(apply load-lib nil (prependss arg opts))
diff --git a/test/clojure/test_clojure/ns_libs.clj b/test/clojure/test_clojure/ns_libs.clj
index a9a2145c..c5b9666a 100644
--- a/test/clojure/test_clojure/ns_libs.clj
+++ b/test/clojure/test_clojure/ns_libs.clj
@@ -26,3 +26,11 @@
; require use
; loaded-libs
+(deftest test-require
+ (is (thrown? Exception (require :foo)))
+ (is (thrown? Exception (require))))
+
+(deftest test-use
+ (is (thrown? Exception (use :foo)))
+ (is (thrown? Exception (use))))
+