]> git.eshelyaron.com Git - emacs.git/commitdiff
(merge-ordered-lists): Dot a few more `i`s
authorStefan Monnier <monnier@iro.umontreal.ca>
Thu, 16 Nov 2023 14:50:45 +0000 (09:50 -0500)
committerStefan Monnier <monnier@iro.umontreal.ca>
Thu, 16 Nov 2023 14:57:33 +0000 (09:57 -0500)
Suggested by Mattias EngdegĂ„rd.

* lisp/subr.el (merge-ordered-lists): Don't mutate the arg.

* test/lisp/subr-tests.el (subr-tests--merge-ordered-lists): Make the
test a bit more precise.

lisp/subr.el
test/lisp/subr-tests.el

index abc937531adb1a490c9bdf9075758c6a89009c72..12f37d66ac1d90aa15a2fcb8a112f6c901fcb979 100644 (file)
@@ -2695,6 +2695,7 @@ By default we choose the head of the first list."
   ;; Algorithm inspired from
   ;; [C3](https://en.wikipedia.org/wiki/C3_linearization)
   (let ((result '()))
+    (setq lists (remq nil lists)) ;Don't mutate the original `lists' argument.
     (while (cdr (setq lists (delq nil lists)))
       ;; Try to find the next element of the result. This
       ;; is achieved by considering the first element of each
index f67ac70046a2b1d75ed3da8746c323092dca1f3e..f485328aa7a6b324e270ba53ac2626486a94effa 100644 (file)
 (defalias 'subr-tests--mode-C #'subr-tests--mode-B)
 (derived-mode-add-parents 'subr-tests--mode-A '(subr-tests--mode-C))
 
-(ert-deftest subt-tests--derived-mode-add-parents ()
+(ert-deftest subr-tests--derived-mode-add-parents ()
   ;; The Right Answer is somewhat unclear in the presence of cycles,
   ;; but let's make sure we get tolerable answers.
   ;; FIXME: Currently `prog-mode' doesn't always end up at the end :-(
                        '(subr-tests--mode-A subr-tests--mode-B prog-mode
                          subr-tests--mode-C subr-tests--derived-mode-1))))))
 
-(ert-deftest subt-tests--merge-ordered-lists ()
+(ert-deftest subr-tests--merge-ordered-lists ()
   (should (equal (merge-ordered-lists
-                  '((B A) (C A) (D B) (E D C)))
+                  '((B A) (C A) (D B) (E D C))
+                  (lambda (_) (error "cycle")))
                  '(E D B C A)))
   (should (equal (merge-ordered-lists
-                  '((E D C) (B A) (C A) (D B)))
+                  '((E D C) (B A) (C A) (D B))
+                  (lambda (_) (error "cycle")))
                  '(E D C B A)))
   (should-error (merge-ordered-lists
                  '((E C D) (B A) (A C) (D B))