fix? bug in call-fn with incorrect function call info
This commit is contained in:
parent
7a7a3b8977
commit
1841915d92
|
@ -423,8 +423,8 @@
|
|||
(when (= :function (type clauses))
|
||||
(break (clauses root-ast ;args)))
|
||||
(def len (length clauses))
|
||||
(when (the-fn :match) (break ((the-fn :match) 0 args)))
|
||||
(defn match-fn [i args]
|
||||
(when (the-fn :match) (break ((the-fn :match) root-ast 0 args)))
|
||||
(defn match-fn [root-ast i args]
|
||||
(when (= len i)
|
||||
(error {:node root-ast :called the-fn :value args :msg "no match: function call"}))
|
||||
(def clause (clauses i))
|
||||
|
@ -432,17 +432,17 @@
|
|||
(def match?
|
||||
(match-pattern patt args @{:^parent (the-fn :ctx)}))
|
||||
(when (not (match? :success))
|
||||
(break (match-fn (inc i) args)))
|
||||
(break (match-fn root-ast (inc i) args)))
|
||||
# (print "matched!")
|
||||
(def body-ctx (match? :ctx))
|
||||
(def guard? (if guard
|
||||
(b/bool (interpret guard body-ctx)) true))
|
||||
# (print "passed guard")
|
||||
(when (not guard?)
|
||||
(break (match-fn (inc i) args)))
|
||||
(break (match-fn root-ast (inc i) args)))
|
||||
(interpret expr body-ctx))
|
||||
(set (the-fn :match) match-fn)
|
||||
(match-fn 0 args))
|
||||
(match-fn root-ast 0 args))
|
||||
|
||||
(set call-fn call-fn*)
|
||||
|
||||
|
|
Loading…
Reference in New Issue
Block a user