From e0101944fd8c006bdf628cc15c5681b842f51ec2 Mon Sep 17 00:00:00 2001 From: Alex Shinn Date: Sat, 20 Jul 2013 15:12:52 +0900 Subject: [PATCH] Raising an error in do iterator clauses with more then 3 terms. Provides a friendlier error for cases like issue #187. --- lib/init-7.scm | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/lib/init-7.scm b/lib/init-7.scm index 748e7821..9e4f34fd 100644 --- a/lib/init-7.scm +++ b/lib/init-7.scm @@ -284,7 +284,12 @@ `(,(rename 'begin) ,@(cdr (cddr expr)) (,(rename 'lp) - ,@(map (lambda (x) (if (pair? (cddr x)) (car (cddr x)) (car x))) + ,@(map (lambda (x) + (if (pair? (cddr x)) + (if (pair? (cdr (cddr x))) + (error "too many forms in do iterator" x) + (car (cddr x))) + (car x))) (cadr expr))))) (check (car (cddr expr))) (wrap