Test runner: return-value error handling, no guard/cek-try/throws
guard and cek-try both create CEK frames that don't survive async perform/resume. Instead, run-action returns nil on success and an error string on failure. The for-each loop checks the return value and sets fail-msg. No exceptions cross async boundaries. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -1859,7 +1859,8 @@
|
||||
(let
|
||||
((acc2 (append acc (list cmd))))
|
||||
(cond
|
||||
((match-kw "then") (cl-collect acc2))
|
||||
((match-kw "then")
|
||||
(cl-collect (append acc2 (list (quote __then__)))))
|
||||
((and (not (at-end?)) (= (tp-type) "keyword") (cmd-kw? (tp-val)))
|
||||
(cl-collect acc2))
|
||||
(true acc2)))))))
|
||||
@@ -1868,7 +1869,10 @@
|
||||
(cond
|
||||
((= (len cmds) 0) nil)
|
||||
((= (len cmds) 1) (first cmds))
|
||||
(true (cons (quote do) cmds))))))
|
||||
(true
|
||||
(cons
|
||||
(quote do)
|
||||
(filter (fn (c) (not (= c (quote __then__)))) cmds)))))))
|
||||
(define
|
||||
parse-on-feat
|
||||
(fn
|
||||
|
||||
Reference in New Issue
Block a user