diff options
author | Kaz Kylheku <kaz@kylheku.com> | 2021-04-29 22:37:36 -0700 |
---|---|---|
committer | Kaz Kylheku <kaz@kylheku.com> | 2021-04-29 22:37:36 -0700 |
commit | 06d38b335b10d6def68f3f3a340306393fec67fd (patch) | |
tree | 025df04eaaed38116587402466959c00838073fd /tests | |
parent | 853e299c38e5514810574b1094136d64ed375831 (diff) | |
download | txr-06d38b335b10d6def68f3f3a340306393fec67fd.tar.gz txr-06d38b335b10d6def68f3f3a340306393fec67fd.tar.bz2 txr-06d38b335b10d6def68f3f3a340306393fec67fd.zip |
mapcar*: fix broken.
* eval.c (lazy_mapcar_func): We must capture the return value
of iter_step, since we refer to it in the next statement,
expecting it to have stepped. This bug causes a behavior as if
the original list had an extra nil.
* tests/012/lazy.tl: Tests. Poor test coverage is why this
sort of thing comes up and bites us.
Diffstat (limited to 'tests')
-rw-r--r-- | tests/012/lazy.tl | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/tests/012/lazy.tl b/tests/012/lazy.tl new file mode 100644 index 00000000..be04412a --- /dev/null +++ b/tests/012/lazy.tl @@ -0,0 +1,6 @@ +(load "../common") + +(test [mapcar* list nil] nil) +(test [mapcar* list '(1)] ((1))) +(test [mapcar* list '(1 2 3)] ((1) (2) (3))) +(test [mapcar* list '(1 2 3) '(a b c)] ((1 a) (2 b) (3 c))) |