X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=src%2Fcode%2Fbackq.lisp;h=0e7896d87a414ea0e23ab3b6c25d28c46bbdda5f;hb=380ea897e2c12a01547f918f73e8a1db0a3a0373;hp=b82b4641ac874eeede936189c0ba93d6ce34cebd;hpb=80ebbaeab5ba077437ec31b7ac82329ae04c4c42;p=sbcl.git diff --git a/src/code/backq.lisp b/src/code/backq.lisp index b82b464..0e7896d 100644 --- a/src/code/backq.lisp +++ b/src/code/backq.lisp @@ -186,13 +186,10 @@ (cons 'backq-list* thing)))) ((eq flag 'vector) (list 'backq-vector thing)) - (t (cons (cdr - (assoc flag - '((cons . backq-cons) - (list . backq-list) - (append . backq-append) - (nconc . backq-nconc)) - :test #'equal)) + (t (cons (ecase flag + ((list) 'backq-list) + ((append) 'backq-append) + ((nconc) 'backq-nconc)) thing)))) ;;;; magic BACKQ- versions of builtin functions @@ -210,6 +207,7 @@ ;; whether there's still an optimizer bug, and fix it if so, and ;; then make these INLINE. `(defun ,b-name (&rest ,args) + (declare (dynamic-extent ,args)) (apply #',name ,args))))) (def backq-list list) (def backq-list* list*)