emacs-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

master 96bbbae: Fix obsolete variable warnings about class names


From: Michael Heerdegen
Subject: master 96bbbae: Fix obsolete variable warnings about class names
Date: Wed, 6 Jan 2021 11:53:53 -0500 (EST)

branch: master
commit 96bbbaec5c1b2612946ff08abf9d43e7478e8c43
Author: Michael Heerdegen <michael_heerdegen@web.de>
Commit: Michael Heerdegen <michael_heerdegen@web.de>

    Fix obsolete variable warnings about class names
    
    * lisp/emacs-lisp/eieio-core.el (eieio-defclass-autoload): Try to make
    the wording of the warning about the obsoleted variable less confusing.
    * lisp/emacs-lisp/bytecomp.el (byte-compile-check-variable): Don't
    warn for lexical variables (Bug#39169).  Fix spurious `or'.
    * test/lisp/emacs-lisp/bytecomp-tests.el
    (bytecomp/warn-obsolete-variable-bound\.el): New test.
    * test/lisp/emacs-lisp/bytecomp-resources/warn-obsolete-variable-bound.el:
    New file.
---
 lisp/emacs-lisp/bytecomp.el                                      | 9 +++++----
 lisp/emacs-lisp/eieio-core.el                                    | 3 ++-
 .../bytecomp-resources/warn-obsolete-variable-bound.el           | 7 +++++++
 test/lisp/emacs-lisp/bytecomp-tests.el                           | 3 +++
 4 files changed, 17 insertions(+), 5 deletions(-)

diff --git a/lisp/emacs-lisp/bytecomp.el b/lisp/emacs-lisp/bytecomp.el
index 7645781..360da6b 100644
--- a/lisp/emacs-lisp/bytecomp.el
+++ b/lisp/emacs-lisp/bytecomp.el
@@ -3441,10 +3441,11 @@ for symbols generated by the byte compiler itself."
            (and od
                 (not (memq var byte-compile-not-obsolete-vars))
                 (not (memq var byte-compile-global-not-obsolete-vars))
-                (or (pcase (nth 1 od)
-                      ('set (not (eq access-type 'reference)))
-                      ('get (eq access-type 'reference))
-                      (_ t)))))
+                (not (memq var byte-compile-lexical-variables))
+                (pcase (nth 1 od)
+                  ('set (not (eq access-type 'reference)))
+                  ('get (eq access-type 'reference))
+                  (_ t))))
         (byte-compile-warn-obsolete var))))
 
 (defsubst byte-compile-dynamic-variable-op (base-op var)
diff --git a/lisp/emacs-lisp/eieio-core.el b/lisp/emacs-lisp/eieio-core.el
index 3e5e9b9..a8361c0 100644
--- a/lisp/emacs-lisp/eieio-core.el
+++ b/lisp/emacs-lisp/eieio-core.el
@@ -215,7 +215,8 @@ It creates an autoload function for CNAME's constructor."
       ;; turn this into a usable self-pointing symbol
       (when eieio-backward-compatibility
         (set cname cname)
-        (make-obsolete-variable cname (format "use \\='%s instead" cname)
+        (make-obsolete-variable cname (format "\
+use \\='%s or turn off `eieio-backward-compatibility' instead" cname)
                                 "25.1"))
 
       (setf (cl--find-class cname) newc)
diff --git 
a/test/lisp/emacs-lisp/bytecomp-resources/warn-obsolete-variable-bound.el 
b/test/lisp/emacs-lisp/bytecomp-resources/warn-obsolete-variable-bound.el
new file mode 100644
index 0000000..e65a541
--- /dev/null
+++ b/test/lisp/emacs-lisp/bytecomp-resources/warn-obsolete-variable-bound.el
@@ -0,0 +1,7 @@
+;;; -*- lexical-binding: t -*-
+
+(make-obsolete-variable 'bytecomp--tests-obsolete-var-2 nil "99.99")
+
+(defun foo ()
+  (let ((bytecomp--tests-obsolete-var-2 2))
+    bytecomp--tests-obsolete-var-2))
diff --git a/test/lisp/emacs-lisp/bytecomp-tests.el 
b/test/lisp/emacs-lisp/bytecomp-tests.el
index 5e5f99d..a07af18 100644
--- a/test/lisp/emacs-lisp/bytecomp-tests.el
+++ b/test/lisp/emacs-lisp/bytecomp-tests.el
@@ -625,6 +625,9 @@ Subtests signal errors if something goes wrong."
 (bytecomp--define-warning-file-test "warn-obsolete-variable.el"
                             "bytecomp--tests-obs.*obsolete.*99.99")
 
+(bytecomp--define-warning-file-test "warn-obsolete-variable-bound.el"
+                            "bytecomp--tests-obs.*obsolete.*99.99" t)
+
 (bytecomp--define-warning-file-test "warn-redefine-defun-as-macro.el"
                             "as both function and macro")
 



reply via email to

[Prev in Thread] Current Thread [Next in Thread]