File tree Expand file tree Collapse file tree 1 file changed +13
-6
lines changed
src/test/clojure/clojure/tools/analyzer/jvm Expand file tree Collapse file tree 1 file changed +13
-6
lines changed Original file line number Diff line number Diff line change 5
5
[clojure.tools.analyzer.env :as env]
6
6
[clojure.tools.analyzer.passes.elide-meta :refer [elides elide-meta]]
7
7
[clojure.tools.analyzer.ast :refer [postwalk]]
8
+ [clojure.tools.reader :as r]
8
9
[clojure.test :refer [deftest is]]))
9
10
10
11
(defprotocol p (f [_]))
20
21
(env/with-env (ana.jvm/global-env )
21
22
(postwalk (ana/analyze '~form e) elide-meta))))
22
23
24
+ (defn ana [form]
25
+ (binding [ana/macroexpand-1 ana.jvm/macroexpand-1
26
+ ana/create-var ana.jvm/create-var
27
+ ana/parse ana.jvm/parse
28
+ ana/var? var?
29
+ elides {:all #{:line :column :file }}]
30
+ (ana.jvm/analyze form e)))
31
+
23
32
(defmacro ast1 [form]
24
- `(binding [ana/macroexpand-1 ana.jvm/macroexpand-1
25
- ana/create-var ana.jvm/create-var
26
- ana/parse ana.jvm/parse
27
- ana/var? var?
28
- elides {:all #{:line :column :file }}]
29
- (ana.jvm/analyze '~form e)))
33
+ `(ana '~form))
30
34
31
35
(defmacro mexpand [form]
32
36
`(ana.jvm/macroexpand-1 '~form e))
108
112
(deftest analyze+eval-context-test
109
113
(let [do-ast (ana.jvm/analyze+eval '(do 1 2 3 ))]
110
114
(is (= :ctx/statement (-> do-ast :statements first :env :context )))))
115
+
116
+ (deftest array_class
117
+ (is (ana (r/read-string " (fn [^{:tag int/2} x] (instance? int/2 x))" ))))
You can’t perform that action at this time.
0 commit comments