summaryrefslogtreecommitdiff
path: root/module/system/base
diff options
context:
space:
mode:
authorLudovic Courtès <ludo@gnu.org>2018-07-24 11:53:02 +0200
committerAndy Wingo <wingo@pobox.com>2018-08-07 12:34:32 +0200
commitc6f70e4b04a7ac3ecdc6ee3b53e0ae4380945f9c (patch)
tree70afbfa7f22fdb64aa9396bbe5f40370ef341e67 /module/system/base
parent04aa6d1fb75ed7f73117a455907b86c5a220276d (diff)
downloadguile-c6f70e4b04a7ac3ecdc6ee3b53e0ae4380945f9c.tar.gz
Add -Wshadowed-toplevel.
* module/language/tree-il/analyze.scm (shadowed-toplevel-analysis): New variable. * module/language/tree-il/compile-cps.scm (%warning-passes): Add it. * module/system/base/message.scm (%warning-types): Add it. * test-suite/tests/tree-il.test ("warnings")["shadowed-toplevel"]: New test prefix. * module/ice-9/boot-9.scm (%auto-compilation-options): Add it. * doc/ref/api-evaluation.texi (Compilation): Add 'shadowed-toplevel' and 'macro-use-before-definition'.
Diffstat (limited to 'module/system/base')
-rw-r--r--module/system/base/message.scm9
1 files changed, 8 insertions, 1 deletions
diff --git a/module/system/base/message.scm b/module/system/base/message.scm
index 979291c1e..8559a8568 100644
--- a/module/system/base/message.scm
+++ b/module/system/base/message.scm
@@ -1,6 +1,6 @@
;;; User interface messages
-;; Copyright (C) 2009, 2010, 2011, 2012 Free Software Foundation, Inc.
+;; Copyright (C) 2009, 2010, 2011, 2012, 2018 Free Software Foundation, Inc.
;;; This library is free software; you can redistribute it and/or
;;; modify it under the terms of the GNU Lesser General Public
@@ -109,6 +109,13 @@
(emit port "~A: warning: possibly unused local top-level variable `~A'~%"
loc name)))
+ (shadowed-toplevel
+ "report shadowed top-level variables"
+ ,(lambda (port loc name previous-loc)
+ (emit port "~A: warning: shadows previous definition of `~A' at ~A~%"
+ loc name
+ (location-string previous-loc))))
+
(unbound-variable
"report possibly unbound variables"
,(lambda (port loc name)