From 871094e9ed8d9f737428f43283844d2c428e70fe Mon Sep 17 00:00:00 2001 From: Kaz Kylheku Date: Fri, 21 May 2021 19:56:47 -0700 Subject: eval: bugfix: expand keys in case{q,ql,qual}* * eval.c (me_case): When we evaluate the keys of a caseq, caseql* or casequal* construct, we must use expand_eval. I ran into this problem trying to use constants defined as symbol macros as keys. --- eval.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/eval.c b/eval.c index 0f6600c6..15454da8 100644 --- a/eval.c +++ b/eval.c @@ -4088,9 +4088,9 @@ static val me_case(val form, val menv) if (star) { if (atom(keys)) - hash_keys = cons(keys = eval(keys, nil, form), nil); + hash_keys = cons(keys = expand_eval(keys, nil, menv), nil); else - hash_keys = keys = eval(cons(list_s, keys), nil, form); + hash_keys = keys = expand_eval(cons(list_s, keys), nil, menv); } if (consp(keys) && !cdr(keys)) -- cgit v1.2.3