~ chicken-core (chicken-5) 850fa48e370b29076be8b93123a30b5344a4c1d4


commit 850fa48e370b29076be8b93123a30b5344a4c1d4
Author:     Evan Hanson <evhan@foldling.org>
AuthorDate: Tue Dec 29 08:38:49 2015 +1300
Commit:     Peter Bex <peter@more-magic.net>
CommitDate: Tue Dec 29 13:09:16 2015 +0100

    Don't warn about unused hidden variables
    
    Fixes #1237.
    
    Signed-off-by: Peter Bex <peter@more-magic.net>

diff --git a/core.scm b/core.scm
index 32005bfa..fb70c6f2 100644
--- a/core.scm
+++ b/core.scm
@@ -2132,6 +2132,7 @@
 		    global
 		    (null? references)
 		    (not (variable-mark sym '##compiler#unused))
+		    (not (variable-hidden? sym))
 		    (not (variable-visible? sym block-compilation))
 		    (not (variable-mark sym '##compiler#constant)) )
 	   (##sys#notice
diff --git a/support.scm b/support.scm
index 75537432..fd33ff4c 100644
--- a/support.scm
+++ b/support.scm
@@ -65,7 +65,7 @@
      real-name real-name2 display-real-name-table
      source-info->string source-info->line call-info constant-form-eval
      dump-nodes read-info-hook read/source-info big-fixnum?
-     hide-variable export-variable variable-visible?
+     hide-variable export-variable variable-hidden? variable-visible?
      mark-variable variable-mark intrinsic? predicate? foldable?
      load-identifier-database
      print-version print-usage print-debug-options
@@ -1564,6 +1564,9 @@
 (define (export-variable sym)		; Used only in compiler.scm
   (mark-variable sym '##compiler#visibility 'exported))
 
+(define (variable-hidden? sym)
+  (eq? (##sys#get sym '##compiler#visibility) 'hidden))
+
 (define (variable-visible? sym block-compilation)
   (let ((p (##sys#get sym '##compiler#visibility)))
     (case p
Trap