summaryrefslogtreecommitdiff
path: root/lisp/emacs-lisp
diff options
context:
space:
mode:
authorStefan Monnier <monnier@iro.umontreal.ca>2011-03-11 21:59:24 -0500
committerStefan Monnier <monnier@iro.umontreal.ca>2011-03-11 21:59:24 -0500
commit3aaaa6f1c9ebd44db3a293e6fd4c08193caf2275 (patch)
tree80ed0e1d0df3e4751b21694bead90cf75fca744f /lisp/emacs-lisp
parent7f0869bd1d2f8681f86b0104dff1392d29634d0e (diff)
downloademacs-3aaaa6f1c9ebd44db3a293e6fd4c08193caf2275.tar.gz
emacs-3aaaa6f1c9ebd44db3a293e6fd4c08193caf2275.tar.bz2
emacs-3aaaa6f1c9ebd44db3a293e6fd4c08193caf2275.zip
* lisp/emacs-lisp/bytecomp.el (byte-compile-make-obsolete-variable):
Disable obsolescence warnings in the file that declares it.
Diffstat (limited to 'lisp/emacs-lisp')
-rw-r--r--lisp/emacs-lisp/bytecomp.el11
1 files changed, 11 insertions, 0 deletions
diff --git a/lisp/emacs-lisp/bytecomp.el b/lisp/emacs-lisp/bytecomp.el
index 2f113dfb479..5e24b80ac5a 100644
--- a/lisp/emacs-lisp/bytecomp.el
+++ b/lisp/emacs-lisp/bytecomp.el
@@ -3840,6 +3840,17 @@ that suppresses all warnings during execution of BODY."
,@decls
',(nth 1 form)))))
+;; If foo.el declares `toto' as obsolete, it is likely that foo.el will
+;; actually use `toto' in order for this obsolete variable to still work
+;; correctly, so paradoxically, while byte-compiling foo.el, the presence
+;; of a make-obsolete-variable call for `toto' is an indication that `toto'
+;; should not trigger obsolete-warnings in foo.el.
+(byte-defop-compiler-1 make-obsolete-variable)
+(defun byte-compile-make-obsolete-variable (form)
+ (when (eq 'quote (car-safe (nth 1 form)))
+ (push (nth 1 (nth 1 form)) byte-compile-not-obsolete-vars))
+ (byte-compile-normal-call form))
+
(defun byte-compile-defvar (form)
;; This is not used for file-level defvar/consts with doc strings.
(when (and (symbolp (nth 1 form))