~ chicken-core (chicken-5) 3f44e143f9c08376ee5537a248b4ad4bbae5213f


commit 3f44e143f9c08376ee5537a248b4ad4bbae5213f
Author:     felix <felix@call-with-current-continuation.org>
AuthorDate: Mon Jan 2 12:17:16 2012 +0100
Commit:     felix <felix@call-with-current-continuation.org>
CommitDate: Fri Jan 20 08:56:24 2012 +0100

    don't assume type of global variable if declaring as not inline

diff --git a/scrutinizer.scm b/scrutinizer.scm
index e3a91715..69682a0a 100755
--- a/scrutinizer.scm
+++ b/scrutinizer.scm
@@ -614,7 +614,10 @@
 			       (not (get db var 'unknown)))
 		      (and-let* ((val (or (get db var 'value)
 					  (get db var 'local-value))))
-			(when (eq? val (first subs))
+			(when (and (eq? val (first subs))
+				   (or (not (variable-visible? var))
+				       (not (eq? (variable-mark var '##compiler#inline) 
+						 'no))))
 			  (debugging '|I| (sprintf "(: ~s ~s)" var rt))
 			  ;; [2] sets property, but lambda has already been walked,
 			  ;; so no type-checks are generated (see also [1], above)
Trap