[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
bug#34781: 27.0.50; integer in pcase sometimes compared by eq
From: |
Mattias Engdegård |
Subject: |
bug#34781: 27.0.50; integer in pcase sometimes compared by eq |
Date: |
Thu, 07 Mar 2019 16:13:27 +0100 |
User-agent: |
Evolution 3.30.5 (3.30.5-1.fc29) |
(defun f (x)
(pcase x
((or 'a #x10000000000000000) t)))
(f #x10000000000000000) => nil
Just replacing integerp with fixnump fixes this, but I'm not sure if
more of the same lurks somewhere.
--- a/lisp/emacs-lisp/pcase.el
+++ b/lisp/emacs-lisp/pcase.el
@@ -792,7 +792,7 @@ pcase--u1
(let ((upat (cddr alt)))
(eq (car-safe upat) 'quote)))
(let ((val (cadr (cddr alt))))
- (unless (or (integerp val) (symbolp val))
+ (unless (or (fixnump val) (symbolp val))
(setq memq-ok nil))
(push (cadr (cddr alt)) simples))
(push alt others))))