Subject: Re: bug#50219: 28.0.50; Provide better errors when trying to specialize on optional args in generic methods

From: Eric Abrahamsen <[email-masked]>
Date: Sun, 29 Aug 2021 20:33:04 -0700

On 08/29/21 21:16 PM, Michael Heerdegen wrote:
> Eric Abrahamsen <[email-masked]> writes:
>
>> > This sounds like Bug#39169.  Did I forget to commit the fix I had
>> > posted there?
>>
>> I thought I'd seen discussion about this before! The code you described
>> in that bug report did get committed, so I can only assume this is a
>> separate but look-alike situation.
>
> Please search for the string "use \\='%s" in eieio-core.el.  We made one
> of three occurrences less confusing, seems you hit some other (2/3?).  I
> guess we want to change this one as well.

Both the line 343 and line 423 sites do the same thing: define the class
symbol as an obsolete variable, and recommend using the quoted symbol
instead.

This is applicable to most situations where people are specifically
trying to do something with the class, but in this case (the &optional
args) the method is supposed to be doing something with the symbol-value
of a (here unquoted) symbol (I was using it wrong). I can't think of a
situation where it would make sense to be using the class symbol in this
way, so I think the proper place to raise an error is in cl-generic.el,
not in the class definitions here.

> AFAIR you can also just disable `eieio-backward-compatibility' (file or
> directory locally).

But I can't do that for everyone who's compiling EBDB locally (on
package update, etc).