From c3624f86bdd117dc34d410939134407532c1cf01 Mon Sep 17 00:00:00 2001 From: Kaz Kylheku Date: Thu, 24 Nov 2016 21:13:37 -0800 Subject: bugfix: op macro using wrong expansions op. * eval.c (me_op): When the operator is op, the arguments must be expanded as Lisp-1 with expand_forms_lisp1, not with the regular expand_forms. --- eval.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/eval.c b/eval.c index 1114846b..4e617f9e 100644 --- a/eval.c +++ b/eval.c @@ -3116,7 +3116,9 @@ static val supplement_op_syms(val ssyms, val max) static val me_op(val form, val menv) { cons_bind (sym, body, form); - val body_ex = if3(sym == op_s, expand_forms(body, menv), expand(body, menv)); + val body_ex = if3(sym == op_s, + expand_forms_lisp1(body, menv), + expand(body, menv)); val rest_gensym = gensym(lit("rest-")); cons_bind (syms, body_trans, transform_op(body_ex, nil, rest_gensym)); val ssyms = sort(syms, func_n2(lt), car_f); -- cgit v1.2.3