File tree 2 files changed +23
-13
lines changed
test/clojure/cljs/analyzer
2 files changed +23
-13
lines changed Original file line number Diff line number Diff line change 2143
2143
{:line line :column column})
2144
2144
param {:op :binding
2145
2145
:name name
2146
+ :form name
2146
2147
:line line
2147
2148
:column column
2148
2149
:tag tag
2205
2206
shadow (or (handle-symbol-local name (get locals name))
2206
2207
(get-in env [:js-globals name]))
2207
2208
fn-scope (:fn-scope env)
2208
- name-var {:name name
2209
- :op :binding
2209
+ name-var {:op :binding
2210
+ :env env
2211
+ :form name
2212
+ :name name
2210
2213
:local :fn
2211
2214
:info {:fn-self-name true
2212
2215
:fn-scope fn-scope
2326
2329
(let [ret-tag (-> n meta :tag )
2327
2330
fexpr (no-warn (analyze env (n->fexpr n)))
2328
2331
be (cond->
2329
- {:name n
2330
- :op :binding
2332
+ {:op :binding
2333
+ :name n
2334
+ :form n
2335
+ :env env
2331
2336
:fn-var true
2332
2337
:line (get-line n env)
2333
2338
:column (get-col n env)
2416
2421
col (get-col name env)
2417
2422
shadow (or (handle-symbol-local name (get-in env [:locals name]))
2418
2423
(get-in env [:js-globals name]))
2419
- be {:name name
2424
+ be {:op :binding
2425
+ :name name
2420
2426
:form name
2421
2427
:line line
2422
2428
:column col
2426
2432
:shadow shadow
2427
2433
; ; Give let* bindings same shape as var so
2428
2434
; ; they get routed correctly in the compiler
2429
- :op :binding
2430
2435
:env {:line line :column col}
2431
2436
:info {:name name
2432
2437
:shadow shadow}
Original file line number Diff line number Diff line change 33
33
(deftest test-def
34
34
(is (s/valid? ::a/node (no-warn (analyze ns-env '(def x)))))
35
35
(is (s/valid? ::a/node (no-warn (analyze ns-env '(def x 1 )))))
36
+ (is (s/valid? ::a/node (no-warn (analyze ns-env '(def x (fn []))))))
37
+ (is (s/valid? ::a/node (no-warn (analyze ns-env '(def x (fn [y] y)))))))
38
+
39
+ (deftest test-fn
36
40
(is (s/valid? ::a/node (no-warn (analyze ns-env '(fn [])))))
37
- (is (s/valid? ::a/node (no-warn (analyze ns-env '(fn [] 1 ))))))
41
+ (is (s/valid? ::a/node (no-warn (analyze ns-env '(fn [] 1 )))))
42
+ (is (s/valid? ::a/node (no-warn (analyze ns-env '(fn [x])))))
43
+ (is (s/valid? ::a/node (no-warn (analyze ns-env '(fn [x] 1 ))))))
44
+
45
+ (deftest test-defn
46
+ (is (s/valid? ::a/node (no-warn (analyze ns-env '(defn x [])))))
47
+ (is (s/valid? ::a/node (no-warn (analyze ns-env '(defn x [] 1 )))))
48
+ (is (s/valid? ::a/node (no-warn (analyze ns-env '(defn x [y] y))))))
38
49
39
50
(deftest test-new
40
51
(is (s/valid? ::a/node (no-warn (analyze ns-env '(new String)))))
49
60
(s/valid? ::a/node (no-warn (analyze ns-env '(case x 1 :foo 2 :bar ))))
50
61
(s/explain ::a/node (no-warn (analyze ns-env '(case x 1 :foo 2 :bar ))))
51
62
52
- (s/valid? ::a/node (no-warn (analyze ns-env '(def x (fn [])))))
53
- (s/explain ::a/node (no-warn (analyze ns-env '(def x (fn [])))))
54
-
55
- (s/valid? ::a/node (no-warn (analyze ns-env '(fn [x]))))
56
- (s/valid? ::a/node (no-warn (analyze ns-env '(fn [x] 1 ))))
57
-
58
63
)
You can’t perform that action at this time.
0 commit comments