~ 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