GNU bug report logs - #68113
Wrong error message triggered in cl--generic-standard-method-combination

Previous Next

Package: emacs;

Reported by: Alan Mackenzie <acm <at> muc.de>

Date: Fri, 29 Dec 2023 16:51:02 UTC

Severity: normal

Tags: notabug

Done: Alan Mackenzie <acm <at> muc.de>

Bug is archived. No further changes may be made.

Full log


View this message in rfc822 format

From: Alan Mackenzie <acm <at> muc.de>
To: 68113 <at> debbugs.gnu.org
Cc: Stefan Monnier <monnier <at> iro.umontreal.ca>
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).




This bug report was last modified 1 year and 189 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.