~ 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