|
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