| 
7 | 7 | ;; You must not remove this notice, or any other, from this software.  | 
8 | 8 | 
 
  | 
9 | 9 | (ns cljs.analyzer.spec-tests  | 
10 |  | -  (:require [cljs.analyzer.api :as ana :refer [no-warn]]  | 
 | 10 | +  (:require [cljs.analyzer :as ana]  | 
 | 11 | +            [cljs.analyzer.api :as ana-api :refer [no-warn]]  | 
11 | 12 |             [cljs.analyzer-tests :refer [analyze ns-env]]  | 
12 | 13 |             [cljs.analyzer.specs :as a]  | 
13 | 14 |             [clojure.test :as test :refer [deftest is]]  | 
 | 
128 | 129 |   (is (s/valid? ::a/node (analyze ns-env '(let [x 1]))))  | 
129 | 130 |   (is (s/valid? ::a/node (analyze ns-env '(let [x 1] x)))))  | 
130 | 131 | 
 
  | 
131 |  | -;; letfn  | 
 | 132 | +(deftest test-letfn  | 
 | 133 | +  (let [node (analyze ns-env '(letfn [(foo [] (bar)) (bar [] (foo))]))]  | 
 | 134 | +    (is (= :letfn (:op node)))  | 
 | 135 | +    (is (s/valid? ::a/node node))))  | 
132 | 136 | 
 
  | 
133 | 137 | ;; list, no longer needed, subsumed by :quote  | 
134 | 138 | 
 
  | 
 | 
165 | 169 | 
 
  | 
166 | 170 | ;; no-op  | 
167 | 171 | 
 
  | 
168 |  | -;; ns  | 
 | 172 | +(deftest test-ns  | 
 | 173 | +  (let [node (no-warn  | 
 | 174 | +               (binding [ana/*cljs-ns* 'cljs.user]  | 
 | 175 | +                 (analyze ns-env '(ns foo (:require [goog.string])))))]  | 
 | 176 | +    (is (= :ns (:op node)))  | 
 | 177 | +    (is (s/valid? ::a/node node))))  | 
169 | 178 | 
 
  | 
170 |  | -;; ns*  | 
 | 179 | +#_(deftest test-ns*  | 
 | 180 | +  (let [node (no-warn  | 
 | 181 | +               (binding [ana/*cljs-ns* 'cljs.user]  | 
 | 182 | +                 (analyze ns-env '(ns* foo '(:require [goog.string])))))]  | 
 | 183 | +    (is (= :ns (:op node)))  | 
 | 184 | +    (is (s/valid? ::a/node node))))  | 
171 | 185 | 
 
  | 
172 | 186 | (deftest test-quote  | 
173 | 187 |   (let [node (analyze ns-env ''(1 2 3))]  | 
 | 
179 | 193 |     (is (s/valid? ::a/node node))))  | 
180 | 194 | 
 
  | 
181 | 195 | (deftest test-set  | 
182 |  | -  (let [node (no-warn (analyze ns-env #{1 2 3}))]  | 
 | 196 | +  (let [node (analyze ns-env #{1 2 3})]  | 
183 | 197 |     (is (= :set (:op node)))  | 
184 | 198 |     (is (s/valid? ::a/node node))))  | 
185 | 199 | 
 
  | 
186 |  | -;; set!  | 
 | 200 | +(deftest test-set!  | 
 | 201 | +  (let [node (no-warn (analyze ns-env '(set! x 1)))]  | 
 | 202 | +    (is (= :set! (:op node)))  | 
 | 203 | +    (is (s/valid? ::a/node node))))  | 
187 | 204 | 
 
  | 
188 | 205 | ;; the-var  | 
189 | 206 | 
 
  | 
 | 
192 | 209 |     (is (= :throw (:op node)))  | 
193 | 210 |     (is (s/valid? ::a/node node))))  | 
194 | 211 | 
 
  | 
195 |  | -;; try  | 
 | 212 | +#_(deftest test-try  | 
 | 213 | +  (let [node (no-warn (analyze ns-env '(try 1 (catch :default e) (finally))))]  | 
 | 214 | +    (is (= :try (:op node)))  | 
 | 215 | +    (is (s/valid? ::a/node node))))  | 
196 | 216 | 
 
  | 
197 | 217 | ;; var  | 
198 | 218 | 
 
  | 
 | 
0 commit comments