diff --git a/src/test/clojure/cljs/analyzer/spec_tests.clj b/src/test/clojure/cljs/analyzer/spec_tests.clj new file mode 100644 index 000000000..e16c834ff --- /dev/null +++ b/src/test/clojure/cljs/analyzer/spec_tests.clj @@ -0,0 +1,22 @@ +;; Copyright (c) Rich Hickey. All rights reserved. +;; The use and distribution terms for this software are covered by the +;; Eclipse Public License 1.0 (http://opensource.org/licenses/eclipse-1.0.php) +;; which can be found in the file epl-v10.html at the root of this distribution. +;; By using this software in any fashion, you are agreeing to be bound by +;; the terms of this license. +;; You must not remove this notice, or any other, from this software. + +(ns cljs.analyzer.spec-tests + (:require [cljs.analyzer-tests :refer [analyze ns-env]] + [cljs.analyzer.specs :as a] + [clojure.test :as test :refer [deftest is]] + [clojure.spec.alpha :as s])) + +(deftest test-if + (is '(s/valid? ::a/node (analyze ns-env '(if true true false))))) + +(comment + + (test/run-tests) + + ) diff --git a/src/test/clojure/cljs/analyzer/specs.cljc b/src/test/clojure/cljs/analyzer/specs.cljc index 60d264b0f..64b2e8835 100644 --- a/src/test/clojure/cljs/analyzer/specs.cljc +++ b/src/test/clojure/cljs/analyzer/specs.cljc @@ -52,8 +52,10 @@ (defmethod node :const [_] (s/merge ::base (s/keys - :req-un [::literal? ::val] - :opt-un []))) + :req-un [::val] + ;; ::literal? is required in the AST REF, but we don't actually use it + ;; should check tools.analyzer + :opt-un [::literal?]))) (s/def ::keys (s/* ::node)) (s/def ::vals (s/* ::node))