[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