summaryrefslogtreecommitdiffstats
path: root/tests
diff options
context:
space:
mode:
authorKaz Kylheku <kaz@kylheku.com>2021-04-29 22:37:36 -0700
committerKaz Kylheku <kaz@kylheku.com>2021-04-29 22:37:36 -0700
commit06d38b335b10d6def68f3f3a340306393fec67fd (patch)
tree025df04eaaed38116587402466959c00838073fd /tests
parent853e299c38e5514810574b1094136d64ed375831 (diff)
downloadtxr-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.tl6
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)))