~ chicken-core (chicken-5) 1a75d1f3db16f1fe3b6924e68da5900bffff4f60


commit 1a75d1f3db16f1fe3b6924e68da5900bffff4f60
Author:     felix <felix@call-with-current-continuation.org>
AuthorDate: Wed Aug 31 14:29:23 2011 +0200
Commit:     felix <felix@call-with-current-continuation.org>
CommitDate: Wed Aug 31 14:29:23 2011 +0200

    assignment to non-escaping var retains type of assigned value

diff --git a/scrutinizer.scm b/scrutinizer.scm
index cdc54cbc..7a103e84 100755
--- a/scrutinizer.scm
+++ b/scrutinizer.scm
@@ -629,9 +629,13 @@
 				  #t)))))
 		      ;; don't use "add-to-blist" since the current operation does not affect aliases
 		      (set! blist
-			(alist-cons (cons var (car flow)) 
-				    (if strict-variable-types rt '*)
-				    blist)))
+			(alist-cons
+			 (cons var (car flow)) 
+			 (if (or strict-variable-types
+				 (not (get db var 'captured)))
+			     rt 
+			     '*)
+			 blist)))
 		    '(undefined)))
 		 ((##core#primitive ##core#inline_ref) '*)
 		 ((##core#call)
Trap