[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
bug#68113: Wrong error message triggered in cl--generic-standard-method-
From: |
Alan Mackenzie |
Subject: |
bug#68113: Wrong error message triggered in cl--generic-standard-method-combination |
Date: |
Fri, 29 Dec 2023 16:50:17 +0000 |
Hello, Emacs.
In my development version of Emacs (based on the master branch) I get a
backtrace with the error message being:
Error: wrong-type-argument (symbolp mets-by-qual)
This occurs during the execution of cl-generic-combine-methods, whose
code starts:
(defun cl--generic-standard-method-combination (generic methods)
(let ((mets-by-qual ()))
(dolist (method methods)
(let ((qualifiers (cl-method-qualifiers method)))
(if (eq (car qualifiers) :extra) (setq qualifiers (cddr qualifiers)))
(unless (member qualifiers '(() (:after) (:before) (:around)))
(error "Unsupported qualifiers in function %S: %S"
(cl--generic-name generic) qualifiers))
(push method (alist-get (car qualifiers) mets-by-qual))))
It is the last line that is signalling the error. The pertinent line
from the backtrace which is the expansion of that last line reads:
(let* ((k (car qualifiers)) (p (assq k mets-by-qual)) (v (cons method (cdr
p)))) (progn (if p (setcdr p v) (progn (signal 'wrong-type-argument (list
'symbolp 'mets-by-qual)))) v))
.. The error is, in actual fact, the failure to find an entry for (car
qualifiers) in the alist mets-by-qual. The error message given is
rubbish and more than a little misleading. mets-by-qual is clearly a
symbol.
--
Alan Mackenzie (Nuremberg, Germany).
- bug#68113: Wrong error message triggered in cl--generic-standard-method-combination,
Alan Mackenzie <=