]> git.eshelyaron.com Git - emacs.git/commitdiff
Fix `cl-member' and `cl-assoc' for bignums
authorMattias EngdegÄrd <mattiase@acm.org>
Sun, 2 Jun 2019 00:57:51 +0000 (17:57 -0700)
committerPaul Eggert <eggert@cs.ucla.edu>
Sun, 2 Jun 2019 01:13:00 +0000 (18:13 -0700)
* lisp/emacs-lisp/cl-seq.el (cl-member, cl-assoc): Work with bignums.
* test/lisp/emacs-lisp/cl-seq-tests.el (cl-seq-bignum-eql): New.

lisp/emacs-lisp/cl-seq.el
test/lisp/emacs-lisp/cl-seq-tests.el

index 3eb6ea16daf6bf36c97a0d30e68370bde554781c..86a73e19970531825c13a29e8ad56ed50b6dce5e 100644 (file)
@@ -703,9 +703,7 @@ Return the sublist of LIST whose car is ITEM.
        (while (and cl-list (not (cl--check-test cl-item (car cl-list))))
          (setq cl-list (cdr cl-list)))
        cl-list)
-    (if (and (numberp cl-item) (not (integerp cl-item)))
-       (member cl-item cl-list)
-      (memq cl-item cl-list))))
+    (memql cl-item cl-list)))
 (autoload 'cl--compiler-macro-member "cl-macs")
 
 ;;;###autoload
@@ -744,7 +742,7 @@ Return the sublist of LIST whose car matches.
                        (not (cl--check-test cl-item (car (car cl-alist))))))
          (setq cl-alist (cdr cl-alist)))
        (and cl-alist (car cl-alist)))
-    (if (and (numberp cl-item) (not (integerp cl-item)))
+    (if (numberp cl-item)
        (assoc cl-item cl-alist)
       (assq cl-item cl-alist))))
 (autoload 'cl--compiler-macro-assoc "cl-macs")
index 86288e99ca50e57f3437250ff819fec6f9f85eb7..6515eee9f248e6386f73c7ec334298ac5655a64c 100644 (file)
@@ -302,6 +302,14 @@ Body are forms defining the test."
     (should (equal '(2 8) (last (cl-replace list list2) 2)))
     (should (equal '(1 1) (last (cl-fill list 1) 2)))))
 
+(ert-deftest cl-seq-bignum-eql ()
+  (let ((x (+ most-positive-fixnum 1))
+        (y (+ most-positive-fixnum 1)))
+    (let ((l (list y)))
+      (should (eq (cl-member x l) l)))
+    (let ((a (list (cons y 1) (cons 2 y))))
+      (should (eq (cl-assoc x a) (car a)))
+      (should (eq (cl-rassoc x a) (cadr a))))))
 
 (provide 'cl-seq-tests)
 ;;; cl-seq-tests.el ends here