emacs-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Emacs-diffs] master b5e41e8 1/2: Fix `cl-member' and `cl-assoc' for big


From: Paul Eggert
Subject: [Emacs-diffs] master b5e41e8 1/2: Fix `cl-member' and `cl-assoc' for bignums
Date: Sat, 1 Jun 2019 21:13:07 -0400 (EDT)

branch: master
commit b5e41e8ba3d90f5d01a41912681c47a3408c679a
Author: Mattias EngdegÄrd <address@hidden>
Commit: Paul Eggert <address@hidden>

    Fix `cl-member' and `cl-assoc' for bignums
    
    * 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            | 6 ++----
 test/lisp/emacs-lisp/cl-seq-tests.el | 8 ++++++++
 2 files changed, 10 insertions(+), 4 deletions(-)

diff --git a/lisp/emacs-lisp/cl-seq.el b/lisp/emacs-lisp/cl-seq.el
index 3eb6ea1..86a73e1 100644
--- a/lisp/emacs-lisp/cl-seq.el
+++ b/lisp/emacs-lisp/cl-seq.el
@@ -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")
diff --git a/test/lisp/emacs-lisp/cl-seq-tests.el 
b/test/lisp/emacs-lisp/cl-seq-tests.el
index 86288e9..6515eee 100644
--- a/test/lisp/emacs-lisp/cl-seq-tests.el
+++ b/test/lisp/emacs-lisp/cl-seq-tests.el
@@ -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



reply via email to

[Prev in Thread] Current Thread [Next in Thread]