diff options
author | Kaz Kylheku <kaz@kylheku.com> | 2021-06-28 06:21:30 -0700 |
---|---|---|
committer | Kaz Kylheku <kaz@kylheku.com> | 2021-06-28 06:21:30 -0700 |
commit | 4462afdd0a80cbf8c73faa58fb0540b70bd0d890 (patch) | |
tree | 0299bf89ff818534bd5aa5c0bb4827ca0ea5b5e4 | |
parent | f68ce026f8cbf8bd85ffcc98beeaad75dab56c7c (diff) | |
download | txr-4462afdd0a80cbf8c73faa58fb0540b70bd0d890.tar.gz txr-4462afdd0a80cbf8c73faa58fb0540b70bd0d890.tar.bz2 txr-4462afdd0a80cbf8c73faa58fb0540b70bd0d890.zip |
expander: use constantp_noex for expanded forms.
* eval.c (expand_progn, do_expand): Use the constantp_noex
helper function of constantp on arguments that we have already
fully expanded.
-rw-r--r-- | eval.c | 8 |
1 files changed, 4 insertions, 4 deletions
@@ -3385,7 +3385,7 @@ static val expand_forms_ss(val forms, val menv, val ss_hash) } } -static val constantp(val form, val env_in); +static val constantp_noex(val form); static val expand_progn(val form, val menv) { @@ -3403,7 +3403,7 @@ static val expand_progn(val form, val menv) return rlcp(cdr(ex_f), form); } - if ((symbolp(ex_f) || constantp(ex_f, menv)) && ex_r) + if ((symbolp(ex_f) || constantp_noex(ex_f)) && ex_r) return rlcp(ex_r, form); if (ex_f == f && ex_r == r) @@ -5080,8 +5080,8 @@ again: if (insym_ex == rcons_s && proper_list_p(args_ex) && length(args_ex) == two && - constantp(car(args_ex), menv) && - constantp(cadr(args_ex), menv)) + constantp_noex(car(args_ex)) && + constantp_noex(cadr(args_ex))) { return rlcp(rcons(eval(car(args_ex), menv, form), eval(cadr(args_ex), menv, form)), form); |