Skip to content

Commit 7a06d00

Browse files
anmonteirodnolen
authored andcommitted
CLJS-1763: Defining a var that clashes with cljs.core throws a compiler error instead of warning
1 parent a518320 commit 7a06d00

File tree

2 files changed

+10
-2
lines changed

2 files changed

+10
-2
lines changed

src/main/clojure/cljs/analyzer.cljc

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1892,7 +1892,7 @@
18921892
(fn [s [k & filters]]
18931893
(if (= k :refer-clojure)
18941894
(do
1895-
(when (seq s)
1895+
(when (seq (:excludes s))
18961896
(throw (error env "Only one :refer-clojure form is allowed per namespace definition")))
18971897
(let [valid-kws #{:exclude :rename}
18981898
xs
@@ -1924,7 +1924,8 @@
19241924
:else ret))]
19251925
(merge-with into s xs)))
19261926
s))
1927-
{} args))
1927+
{:excludes #{}
1928+
:renames {}} args))
19281929

19291930
(defn use->require [env [lib & filters :as spec]]
19301931
(when-not (and (symbol? lib) (odd? (count spec)))

src/test/clojure/cljs/analyzer_tests.clj

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -449,3 +449,10 @@
449449
(is (thrown-with-msg? Exception #"Can't def ns-qualified name in namespace foo.core"
450450
(a/analyze test-env '(def foo.core/foo 43))))
451451
(is (a/analyze test-env '(def cljs.user/foo 43))))))
452+
453+
(deftest test-cljs-1763
454+
(let [parsed (a/parse-ns-excludes {} '())]
455+
(is (= parsed
456+
{:excludes #{}
457+
:renames {}}))
458+
(is (set? (:excludes parsed)))))

0 commit comments

Comments
 (0)