From ed16b6ad1030981253aa6e6575024df41318cf99 Mon Sep 17 00:00:00 2001 From: Kaz Kylheku Date: Mon, 23 May 2016 20:56:36 -0700 Subject: Track origin across op/do expansion. * eval.c (me_op): We tell a little lie here, by indicating that the "dwim body" is an expansion of the op operator. Of course, the entire lambda containing that body is that expansion. But in error messages, we need something useful for the user. --- eval.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/eval.c b/eval.c index 92b54b52..f3dca033 100644 --- a/eval.c +++ b/eval.c @@ -2945,6 +2945,8 @@ static val me_op(val form, val menv) if (sym == do_s) dwim_body = rlcp(cdr(dwim_body), dwim_body); + set_origin(dwim_body, form); + return cons(lambda_s, cons(append2(mapcar(cdr_f, ssyms), rest_gensym), cons(dwim_body, nil))); -- cgit v1.2.3