| Every error should have a reference to the expression containing it. These expressions are attached to all error expressions before macro expansion time, so they contain the code as the user sees or writes it. >(when bla
> (do
> (foo)
> (bar)
> (err 'bla)))
Error "error:bla"
>(err-origin)
(do (foo) (bar) (err 'bla))
This scheme is more general than attaching line numbers to errors, because not every expression has a line number (generated code), but everything is an expression. |