~ chicken-core (chicken-5) 8518c87a88cec01c3e4369fefa03cd82de8ab2f8


commit 8518c87a88cec01c3e4369fefa03cd82de8ab2f8
Author:     felix <felix@call-with-current-continuation.org>
AuthorDate: Thu Dec 2 04:29:43 2010 +0100
Commit:     felix <felix@call-with-current-continuation.org>
CommitDate: Thu Dec 2 04:29:43 2010 +0100

    scrutinizer only needs to handle single-var lets

diff --git a/scrutinizer.scm b/scrutinizer.scm
index a18634f7..01e872d3 100644
--- a/scrutinizer.scm
+++ b/scrutinizer.scm
@@ -548,13 +548,11 @@
 				     r1 r2))
 			       (else '*)))))
 	       ((let)
-		(let loop ((vars params) (body subs) (e2 '()))
-		  (if (null? vars)
-		      (walk (car body) (append e2 e) loc dest)
-		      (let ((t (single 
-				(sprintf "in `let' binding of `~a'" (real-name (car vars)))
-				(walk (car body) e loc (car vars)) loc)))
-			(loop (cdr vars) (cdr body) (alist-cons (car vars) t e2))))))
+		(assert (= 2 (length body))) ;XXX should always be the case
+		(let ((t (single 
+			  (sprintf "in `let' binding of `~a'" (real-name (first params)))
+			  (walk (first body) e loc (first vars)) loc)))
+		  (walk (second body) (append (alist-cons (car vars) t e2) e) loc dest)))
 	       ((##core#lambda lambda)
 		(decompose-lambda-list
 		 (first params)
Trap