(when (and data-type (sb!xc:subtypep data-type 'number))
(if (or (sb!xc:subtypep data-type 'float)
(sb!xc:subtypep data-type '(complex float)))
(when (and data-type (sb!xc:subtypep data-type 'number))
(if (or (sb!xc:subtypep data-type 'float)
(sb!xc:subtypep data-type '(complex float)))
(defun loop-optional-type (&optional variable)
;; No variable specified implies that no destructuring is permissible.
(defun loop-optional-type (&optional variable)
;; No variable specified implies that no destructuring is permissible.
;; We use ASSOC on this list to check for duplications (above),
;; so don't optimize out this list:
;; We use ASSOC on this list to check for duplications (above),
;; so don't optimize out this list:
(defun loop-make-iteration-var (name initialization dtype)
(loop-make-var name initialization dtype t))
(defun loop-make-iteration-var (name initialization dtype)
(loop-make-var name initialization dtype t))
(if (sb!xc:typep init dtype)
dtype
`(or (member ,init) ,dtype)))))
(if (sb!xc:typep init dtype)
dtype
`(or (member ,init) ,dtype)))))
(loop-error "Arithmetic index must be an atom."))))
(when variable (loop-make-iteration-var variable nil variable-type))
(do ((l prep-phrases (cdr l)) (prep) (form) (odir)) ((null l))
(loop-error "Arithmetic index must be an atom."))))
(when variable (loop-make-iteration-var variable nil variable-type))
(do ((l prep-phrases (cdr l)) (prep) (form) (odir)) ((null l))
(t (loop-error
"~S invalid preposition in sequencing or sequence path;~@
maybe invalid prepositions were specified in iteration path descriptor?"
(t (loop-error
"~S invalid preposition in sequencing or sequence path;~@
maybe invalid prepositions were specified in iteration path descriptor?"