]> git.eshelyaron.com Git - emacs.git/commit
(cl--class-allparents): Fix bug#78989
authorStefan Monnier <monnier@iro.umontreal.ca>
Mon, 14 Jul 2025 16:37:11 +0000 (12:37 -0400)
committerEshel Yaron <me@eshelyaron.com>
Thu, 24 Jul 2025 08:53:26 +0000 (10:53 +0200)
commitc27326420f2a7aaf8ee2299ee9dfeefd52ef659d
tree93cbff7e6bef0106419877473bc67795906fe8a9
parent377318330f553568c70a491c7ccc2461846b88e6
(cl--class-allparents): Fix bug#78989

Give more control over ordering when linearizing the
parent graph and avoid pathological misbehavior (such as
placing `t` in the middle of the linearization instead of the
end) when we can't "do it right".

* lisp/subr.el (merge-ordered-lists): Degrade more gracefully in case
of inconsistent hierarchies and don't do it silently.

* lisp/emacs-lisp/cl-preloaded.el (cl--class-allparents): Use the local
ordering to break ties, as in the C3 algorithm.

(cherry picked from commit 7f1cae9637f9a9d4715e101eecad391748e3bd3c)
lisp/emacs-lisp/cl-preloaded.el
lisp/subr.el