Add additional asts to errors.
This commit is contained in:
parent
8d2993637e
commit
62a0fa2429
|
@ -78,7 +78,7 @@
|
||||||
success (:success match)]
|
success (:success match)]
|
||||||
(if success
|
(if success
|
||||||
(vswap! ctx update-ctx (:ctx match))
|
(vswap! ctx update-ctx (:ctx match))
|
||||||
(throw (ex-info (:reason match) {})))
|
(throw (ex-info (:reason match) {:ast ast})))
|
||||||
value))
|
value))
|
||||||
|
|
||||||
(defn- interpret-if [ast ctx]
|
(defn- interpret-if [ast ctx]
|
||||||
|
@ -198,8 +198,8 @@
|
||||||
(if (contains? prev-value (:value curr))
|
(if (contains? prev-value (:value curr))
|
||||||
(get prev-value (:value curr))
|
(get prev-value (:value curr))
|
||||||
(if (= (::data/type prev-value) ::data/ns)
|
(if (= (::data/type prev-value) ::data/ns)
|
||||||
(throw (ex-info (str "Namespace error: no member " (:value curr) " in ns " (::data/name prev-value)) {}))
|
(throw (ex-info (str "Namespace error: no member " (:value curr) " in ns " (::data/name prev-value)) {:ast curr}))
|
||||||
(throw (ex-info (str "Struct error: no member " (:value curr)) {}))))
|
(throw (ex-info (str "Struct error: no member " (:value curr)) {:ast curr}))))
|
||||||
(get prev-value (:value curr)))
|
(get prev-value (:value curr)))
|
||||||
(call-fn prev-value (interpret-ast curr ctx) ctx))))
|
(call-fn prev-value (interpret-ast curr ctx) ctx))))
|
||||||
|
|
||||||
|
@ -406,22 +406,9 @@
|
||||||
|
|
||||||
(def source "
|
(def source "
|
||||||
|
|
||||||
let mytest = {
|
let :foo = :bar
|
||||||
fn even {
|
|
||||||
(0) -> true
|
|
||||||
(n) -> odd (dec (n))
|
|
||||||
}
|
|
||||||
|
|
||||||
fn odd {
|
|
||||||
(0) -> false
|
|
||||||
(n) -> even (dec (n))
|
|
||||||
}
|
|
||||||
|
|
||||||
@{odd, even}
|
|
||||||
}
|
|
||||||
|
|
||||||
mytest :odd (1)
|
|
||||||
mytest :even (955)
|
|
||||||
|
|
||||||
")
|
")
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue
Block a user