diff --git a/code/array.lisp b/code/array.lisp index 725fee125f773e694f421f9b9b10725c367aba8f..f799c39f8db0a296a6a7984b81dda4d5f2f1ebba 100644 --- a/code/array.lisp +++ b/code/array.lisp @@ -7,7 +7,7 @@ ;;; Scott Fahlman (FAHLMAN@CMUC). ;;; ********************************************************************** ;;; -;;; $Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/code/array.lisp,v 1.5 1990/11/10 18:37:16 wlott Exp $ +;;; $Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/code/array.lisp,v 1.6 1990/12/12 22:51:46 wlott Exp $ ;;; ;;; Functions to implement arrays for CMU Common Lisp. ;;; Written by Skef Wholey. @@ -83,12 +83,19 @@ ;;;; MAKE-ARRAY +(eval-when (compile eval) + (defmacro pick-type (type &rest specs) `(cond ,@(mapcar #'(lambda (spec) - `((subtypep ,type ',(car spec)) + `(,(if (eq (car spec) t) + t + `(subtypep ,type ',(car spec))) ,@(cdr spec))) specs))) +); eval-when + + (defun %vector-type-code (type) (pick-type type (base-character (values #.vm:simple-string-type #.vm:byte-bits))