Fix warning-suppress for list type "warning type"
authorXuan Wang <code@wangxuan.name>
Fri, 29 Mar 2024 00:34:23 +0000 (20:34 -0400)
committerEli Zaretskii <eliz@gnu.org>
Sun, 31 Mar 2024 09:06:15 +0000 (12:06 +0300)
commit46b8746b38e26ae3f216f57f231f5fc8aec22873
tree4d829619a889145f7398b0e19ab7f98c1ba61a54
parent910ea5f1e55793fa29292730a59397867b4e868f
Fix warning-suppress for list type "warning type"

Per the documentation of 'warning-suppress-types' and the
implementation of 'warning-suppress-p', a warning type can
be either a symbol or a list of symbols.  The previous
implementation could generate wrong 'warning-suppress-types':

  old behavior:
  type              warning-suppress-types
  pkg           ->    '((pkg))                  Correct
  (pkg subtype) ->    '(((pkg subtype)))        Incorrect

Now we check whether type is a cons cell first.  (Should not
use listp here, as listp returns t for nil.)

  new behavior:
  type              warning-suppress-types
  pkg           ->    '((pkg))                Correct
  (pkg subtype) ->    '((pkg subtype))        Correct

* lisp/emacs-lisp/warnings.el (warnings-suppress): Fix saving
warning types in 'warning-suppress-types'.  (Bug#70063)

Copyright-paperwork-exempt: yes
lisp/emacs-lisp/warnings.el