From 9520c5d03ff1dbc861054183eef7ab5620d3e217 Mon Sep 17 00:00:00 2001 From: Nikodemus Siivola Date: Mon, 3 Mar 2008 14:21:50 +0000 Subject: [PATCH] 1.0.15.10: ASSOC and MEMBER were broken for :KEY #'IDENTITY * Regression caused by 1.0.15.9 -- SET where is should have been SETF. * Add a few test-cases. --- src/compiler/seqtran.lisp | 2 +- tests/list.pure.lisp | 4 ++++ version.lisp-expr | 2 +- 3 files changed, 6 insertions(+), 2 deletions(-) diff --git a/src/compiler/seqtran.lisp b/src/compiler/seqtran.lisp index 494c047..3d4dc91 100644 --- a/src/compiler/seqtran.lisp +++ b/src/compiler/seqtran.lisp @@ -315,7 +315,7 @@ (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. diff --git a/tests/list.pure.lisp b/tests/list.pure.lisp index 702b89e..97f6eb7 100644 --- a/tests/list.pure.lisp +++ b/tests/list.pure.lisp @@ -157,6 +157,8 @@ (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 )) @@ -199,6 +201,8 @@ (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 #'=)) diff --git a/version.lisp-expr b/version.lisp-expr index c1e2e85..a066fe4 100644 --- a/version.lisp-expr +++ b/version.lisp-expr @@ -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" -- 1.7.10.4