~ 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