~ 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