Subject: bug#54079: 29.0.50; Method dispatching eratically fails

From: Stefan Monnier <[email-masked]>
Date: Sun, 20 Feb 2022 22:16:25 -0500

Michael Heerdegen [2022-02-21 01:12:56] wrote:
> I extended register.el with new register content types.  This involves a
> lot of method definitions like
>
>   (cl-defmethod register-val-jump-to ((val TYPE) arg))
>
> where TYPE refers to some of my self defined container types for
> register contents.

Can you show the actual code (the bodies of the `cl-defmethod`s aren't
important, but the TYPE part could, or maybe if they're inside something
else (maybe an `eval-and-compile` or something like that?))?

How is the type defined?  `cl-defstruct`?  `defclass`?

> My problem: the dispatching of these methods is often erratically
> broken.  The methods then are not used although their type should match.
> The according test for VAL being of the TYPE, e.g. by using the
> according type predicate, succeeds.

What does `type-of` return on VAL?

        Stefan