diff options
author | Kaz Kylheku <kaz@kylheku.com> | 2021-05-21 19:56:47 -0700 |
---|---|---|
committer | Kaz Kylheku <kaz@kylheku.com> | 2021-05-21 19:56:47 -0700 |
commit | 871094e9ed8d9f737428f43283844d2c428e70fe (patch) | |
tree | d93252fdaeb9ad1de5021c2942d4f94642e210f3 | |
parent | 99a798c02d009398d4b883b2e0b4fa2181553f61 (diff) | |
download | txr-871094e9ed8d9f737428f43283844d2c428e70fe.tar.gz txr-871094e9ed8d9f737428f43283844d2c428e70fe.tar.bz2 txr-871094e9ed8d9f737428f43283844d2c428e70fe.zip |
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.
-rw-r--r-- | eval.c | 4 |
1 files changed, 2 insertions, 2 deletions
@@ -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)) |