diff options
-rw-r--r-- | eval.c | 5 |
1 files changed, 4 insertions, 1 deletions
@@ -1668,10 +1668,12 @@ static void builtin_reject_test(val op, val sym, val form) static val expand_macrolet(val form, val menv) { + uses_or2; val op = car(form); val body = cdr(form); val macs = pop(&body); val new_env = make_env(nil, nil, menv); + val form_origin = lookup_origin(form); for (; macs; macs = cdr(macs)) { val macro = car(macs); @@ -1690,7 +1692,8 @@ static val expand_macrolet(val form, val menv) cons(nil, cons(params, cons(block, nil)))), block); } - return rlcp_tree(maybe_progn(expand_forms(body, new_env)), body); + return set_origin(rlcp_tree(maybe_progn(expand_forms(body, new_env)), body), + or2(form_origin, form)); } static val expand_symacrolet(val form, val menv) |