GNU bug report logs -
#39169
28.0.50; Confusing obsolete variable warnings in eieio-defclass-autoload
Previous Next
Reported by: Michael Heerdegen <michael_heerdegen <at> web.de>
Date: Sat, 18 Jan 2020 09:58:02 UTC
Severity: normal
Found in version 28.0.50
Done: Michael Heerdegen <michael_heerdegen <at> web.de>
Bug is archived. No further changes may be made.
Full log
Message #32 received at 39169 <at> debbugs.gnu.org (full text, mbox):
[Message part 1 (text/plain, inline)]
Michael Heerdegen <michael_heerdegen <at> web.de> writes:
> Oh, and let me add another important aspect: why does using an obsolete
> name as the name of a _lexical_ variable trigger the "variable is
> obsolete" warning at all? If that would not be the case (and I don't
> think it is useful) then in source files using lexical binding mode we
> would not see the problem.
Would doing something like this make sense?
[bug.patch (text/x-diff, inline)]
diff --git a/lisp/emacs-lisp/bytecomp.el b/lisp/emacs-lisp/bytecomp.el
index 966990bac9..418070fabe 100644
--- a/lisp/emacs-lisp/bytecomp.el
+++ b/lisp/emacs-lisp/bytecomp.el
@@ -3357,6 +3357,7 @@ byte-compile-check-variable
(and od
(not (memq var byte-compile-not-obsolete-vars))
(not (memq var byte-compile-global-not-obsolete-vars))
+ (not (memq var byte-compile-lexical-variables))
(or (pcase (nth 1 od)
('set (not (eq access-type 'reference)))
('get (eq access-type 'reference))
[Message part 3 (text/plain, inline)]
BTW, while I looked at this, I found this spurious lookup in
`byte-compile-lexical-variables':
#+begin_src emacs-lisp
(defun byte-compile-form (form &optional for-effect)
(let ((byte-compile--for-effect for-effect))
(cond
((not (consp form))..10..)
((symbolp (car form))
(let* ((fn (car form))..4..)
(when (memq fn '(set symbol-value run-hooks..4..)
(pcase (cdr form)
(`(',var . ,_)
(when (assq var byte-compile-lexical-variables) ;; <--- here
(byte-compile-report-error
(format-message "%s cannot use lexical var `%s'" fn var)))
...)))))))))
#+end_src
shouldn't the `assq' be `memq'?
Michael.
This bug report was last modified 4 years and 134 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.