From bbf93e47b19f4069b24af2d422817c6617addac6 Mon Sep 17 00:00:00 2001
From: ram <ram>
Date: Sun, 8 Dec 1991 16:55:36 +0000
Subject: [PATCH] Changed MEMBER transform to always return the correct tail of
 the list, instead of trying to "optimize" the case where the destination is
 an IF.  This was gratuitous, and confused type inference.

---
 compiler/seqtran.lisp | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/compiler/seqtran.lisp b/compiler/seqtran.lisp
index e5fa1f8a7..c9746c5e2 100644
--- a/compiler/seqtran.lisp
+++ b/compiler/seqtran.lisp
@@ -7,7 +7,7 @@
 ;;; Scott Fahlman or slisp-group@cs.cmu.edu.
 ;;;
 (ext:file-comment
-  "$Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/compiler/seqtran.lisp,v 1.13 1991/11/12 14:13:53 ram Exp $")
+  "$Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/compiler/seqtran.lisp,v 1.14 1991/12/08 16:55:36 ram Exp $")
 ;;;
 ;;; **********************************************************************
 ;;;
@@ -84,11 +84,11 @@
 (deftransform %setelt ((s i v) (list * *))
   '(setf (car (nthcdr i s)) v))
 
+
 (deftransform member ((e l &key (test #'eql)) * * :node node)
   (unless (constant-continuation-p l) (give-up))
   
-  (let ((val (continuation-value l))
-	(if-p (if-p (continuation-dest (node-cont node)))))
+  (let ((val (continuation-value l)))
     (unless (policy node
 		    (or (= speed 3)
 			(and (>= speed space)
@@ -98,7 +98,7 @@
     (labels ((frob (els)
 	       (if els
 		   `(if (funcall test e ',(car els))
-			',(if if-p t els)
+			',els
 			,(frob (cdr els)))
 		   'nil)))
       (frob val))))
-- 
GitLab