1.0.15.10: ASSOC and MEMBER were broken for :KEY #'IDENTITY
authorNikodemus Siivola <nikodemus@random-state.net>
Mon, 3 Mar 2008 14:21:50 +0000 (14:21 +0000)
committerNikodemus Siivola <nikodemus@random-state.net>
Mon, 3 Mar 2008 14:21:50 +0000 (14:21 +0000)
 * Regression caused by 1.0.15.9 -- SET where is should have been SETF.

 * Add a few test-cases.

src/compiler/seqtran.lisp
tests/list.pure.lisp
version.lisp-expr

index 494c047..3d4dc91 100644 (file)
     (setf test nil))
   ;; Ditto for KEY IDENTITY.
   (when (and key (lvar-for-named-function key 'identity))
-    (set key nil))
+    (setf key nil))
   ;; Key can legally be NIL, but if it's NIL for sure we pretend it's
   ;; not there at all. If it might be NIL, make up a form to that
   ;; ensures it is a function.
index 702b89e..97f6eb7 100644 (file)
   (let ((x-numbers '(1 2))
         (fun (car (list 'member))))
     (test x-numbers (member 1 numbers))
+    (test x-numbers (member 1 numbers :key 'identity))
+    (test x-numbers (member 1 numbers :key #'identity))
     (test (cdr x-numbers) (member 2 numbers))
     (test nil (member 1.0 numbers ))
 
   (let ((fun (car (list 'assoc))))
     (test (1 a) (assoc 1 numbers))
     (test (2 b) (assoc 2 numbers))
+    (test (1 a) (assoc 1 numbers :key 'identity))
+    (test (2 b) (assoc 2 numbers :key #'identity))
     (test nil (assoc 1.0 numbers))
 
     (test (1 a) (assoc 1.0 numbers :test #'=))
index c1e2e85..a066fe4 100644 (file)
@@ -17,4 +17,4 @@
 ;;; checkins which aren't released. (And occasionally for internal
 ;;; versions, especially for internal versions off the main CVS
 ;;; branch, it gets hairier, e.g. "0.pre7.14.flaky4.13".)
-"1.0.15.9"
+"1.0.15.10"