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 55 [clojure.tools.analyzer.env :as env]
66 [clojure.tools.analyzer.passes.elide-meta :refer [elides elide-meta]]
77 [clojure.tools.analyzer.ast :refer [postwalk]]
8+ [clojure.tools.reader :as r]
89 [clojure.test :refer [deftest is]]))
910
1011(defprotocol p (f [_]))
2021 (env/with-env (ana.jvm/global-env )
2122 (postwalk (ana/analyze '~form e) elide-meta))))
2223
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+
2332(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))
3034
3135(defmacro mexpand [form]
3236 `(ana.jvm/macroexpand-1 '~form e))
108112(deftest analyze+eval-context-test
109113 (let [do-ast (ana.jvm/analyze+eval '(do 1 2 3 ))]
110114 (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