GNU bug report logs -
#77123
29.1; call-next-method
Previous Next
Reported by: Christopher Stacy <cstacy <at> dtpq.com>
Date: Wed, 19 Mar 2025 18:21:02 UTC
Severity: normal
Found in version 29.1
Fixed in version 30.1
Done: Stefan Monnier <monnier <at> iro.umontreal.ca>
Bug is archived. No further changes may be made.
Full log
View this message in rfc822 format
[Message part 1 (text/plain, inline)]
In GNU Emacs 29.1 (build 1, x86_64-apple-darwin20.6.0, Carbon Version
164 AppKit 2022.7) of 2023-08-08 built on Mac-1691499221282.local
eieio-version: 1.4
cl-call-next-method is not calling all the methods I expected.
It does call the methods in the direct superclasses, but it seems to be
skipping all the indirect ones.
For a subclass FOO of A, B, a call-next-method from an instance of FOO
will correctly call the A and B methods. But if for example superclass
A has mixins X and Y, neither the X or Y methods will be called. These
are just primary methods. None of the inherited superclass methods are
being run by call-next-method.
Attached is an example test program,
including test results. There are two
versions: one for Emacs Lisp,
and one is for Common Lisp (CLOS).
CL does it correctly (of course),
but EL gets the wrong answer.
I tested with two different CLOS implementations,
just to make sure I'm not crazy.
The files are identical except for
the compatibility preamble and results,
so you can compare them easily.
TEST#1 illustrates the case where things work right.
The differing answer is just in TEST#2.
Thanks for looking into this!
[simple-test.el (text/plain, attachment)]
[simple-test.lisp (text/plain, attachment)]
This bug report was last modified 86 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.