]> git.eshelyaron.com Git - emacs.git/commitdiff
Declare more functions as having important-return-value
authorMattias Engdegård <mattiase@acm.org>
Sat, 20 May 2023 16:24:53 +0000 (18:24 +0200)
committerMattias Engdegård <mattiase@acm.org>
Sat, 20 May 2023 16:38:33 +0000 (18:38 +0200)
* lisp/subr.el (assoc-delete-all, assq-delete-all, rassq-delete-all)
(alist-get): Declare as important-return-value.
* lisp/emacs-lisp/bytecomp.el (important-return-value-fns):
Add `assoc-string`.

lisp/emacs-lisp/bytecomp.el
lisp/subr.el

index deda457322986448f961f26e7512817669b56b07..b8d7b63a81a9a496df4f8af4ceddd85a5ba330d5 100644 (file)
@@ -3561,7 +3561,7 @@ lambda-expression."
          ;; These functions are side-effect-free except for the
          ;; behaviour of functions passed as argument.
          mapcar mapcan mapconcat
-         assoc plist-get plist-member
+         assoc assoc-string plist-get plist-member
 
          ;; It's safe to ignore the value of `sort' and `nreverse'
          ;; when used on arrays, but most calls pass lists.
index 8759c095f1a08f76b762bb0e751b082a9171f5ed..f367095ad278ac270106fbfba4106d5273e304ae 100644 (file)
@@ -893,6 +893,7 @@ Non-strings in LIST are ignored."
 Compare keys with TEST.  Defaults to `equal'.
 Return the modified alist.
 Elements of ALIST that are not conses are ignored."
+  (declare (important-return-value t))
   (unless test (setq test #'equal))
   (while (and (consp (car alist))
              (funcall test (caar alist) key))
@@ -909,12 +910,14 @@ Elements of ALIST that are not conses are ignored."
   "Delete from ALIST all elements whose car is `eq' to KEY.
 Return the modified alist.
 Elements of ALIST that are not conses are ignored."
+  (declare (important-return-value t))
   (assoc-delete-all key alist #'eq))
 
 (defun rassq-delete-all (value alist)
   "Delete from ALIST all elements whose cdr is `eq' to VALUE.
 Return the modified alist.
 Elements of ALIST that are not conses are ignored."
+  (declare (important-return-value t))
   (while (and (consp (car alist))
              (eq (cdr (car alist)) value))
     (setq alist (cdr alist)))
@@ -957,6 +960,7 @@ Example:
   (setf (alist-get \\='b foo nil \\='remove) nil)
 
   foo => ((a . 1))"
+  (declare (important-return-value t))
   (ignore remove) ;;Silence byte-compiler.
   (let ((x (if (not testfn)
                (assq key alist)