File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change 18791879 (disallowing-ns*
18801880 (analyze (assoc env :context :expr ) (:init args) sym))))
18811881 fn-var? (and (some? init-expr) (= (:op init-expr) :fn ))
1882- tag (if fn-var?
1883- (or (:ret-tag init-expr) tag (:inferred-ret-tag init-expr))
1884- (or tag (:tag init-expr)))
1882+ tag (cond
1883+ fn-var? (or (:ret-tag init-expr) tag (:inferred-ret-tag init-expr))
1884+ tag tag
1885+ dynamic ANY_SYM
1886+ :else (:tag init-expr))
18851887 export-as (when-let [export-val (-> sym meta :export )]
18861888 (if (= true export-val) var-name export-val))
18871889 doc (or (:doc args) (-> sym meta :doc ))]
Original file line number Diff line number Diff line change 3535 (is (= 2 (with-redefs [a 10
3636 b (inc a)]
3737 b))))
38+
39+ (def ^:dynamic *foo* false )
40+ (def ^:dynamic ^boolean *foo-tagged* false )
41+
42+ (defn bar [] (if *foo* 1 2 ))
43+ (defn bar-tagged [] (if *foo-tagged* 1 2 ))
44+
45+ (deftest test-tag-inference
46+ (is (= 2 (bar )))
47+ (binding [*foo* " abc" ]
48+ (is (= 1 (bar ))))
49+ (binding [*foo* " " ]
50+ (is (= 1 (bar ))))
51+
52+ (is (= 2 (bar-tagged )))
53+ (binding [*foo-tagged* " abc" ]
54+ (is (= 1 (bar-tagged ))))
55+ (binding [*foo-tagged* " " ]
56+ (is (= 2 (bar-tagged )))))
You can’t perform that action at this time.
0 commit comments