Subject: bug#39169: 28.0.50; Confusing obsolete variable warnings in eieio-defclass-autoload

From: Lars Ingebrigtsen <[email-masked]>
Date: Mon, 24 Aug 2020 22:55:01 +0200

Michael Heerdegen <[email-masked]> writes:

> I'm currently developing a Gnu Elpa package that makes use of
> `defclass'.  These lines in `eieio-defclass-autoload':
>
> #+begin_src emacs-lisp
>       ;; turn this into a usable self-pointing symbol
>       (when eieio-backward-compatibility
>         (set cname cname)
>         (make-obsolete-variable cname (format "use \\='%s instead" cname)
>                                 "25.1"))
> #+end_src
>
> (and eieio-backward-compatibility defaults to t) lead to the following
> situation: when I have any class, for example, named `buffer-note', and
> I have the generated autoloads loaded, whenever I use a variable with
> the name `buffer-note' (which is a quite natural name for objects of
> that class), I get tons of warnings saying:
>
> | buffer-note.el:136:11:Warning: `buffer-note' is an obsolete
> |     variable (as of 25.1); use 'buffer-note
>
> The purpose of these warnings is a backward compatibility one, but it
> shoots way over target: these warnings prevent me from using the class
> name as a variable name - I keep renaming variables to prevent these
> annoying warnings all the time.

Yes, that does sound annoying.  eieio got a lot of warnings during the
conversion to more normal cl-* functions the other year, so it made
sense to add warnings like this during the rewrite.  But that's done
now, so perhaps it makes sense to remove these over-enthusiastic
warnings now?  Stefan?

-- 
(domestic pets only, the antidote for overdose, milk.)
   bloggy blog: http://lars.ingebrigtsen.no