779 |
;;from the function definitions themselves. CM 20050106. |
;;from the function definitions themselves. CM 20050106. |
780 |
(defun aref-propagator (fn x &rest inds) |
(defun aref-propagator (fn x &rest inds) |
781 |
(declare (ignore fn inds)) |
(declare (ignore fn inds)) |
782 |
(and (consp x) (member (car x) '(array vector string) :test #'eq) |
(let ((x (si::normalize-type x))) |
783 |
(let ((uaet (upgraded-array-element-type (nil-to-t (cadr x))))) |
(and (consp x) (member (car x) '(array simple-array)) |
784 |
|
(let ((uaet (and (not (eq (cadr x) '*)) (upgraded-array-element-type (nil-to-t (cadr x)))))) |
785 |
;; FIXME -- inline bit-vectors too. |
;; FIXME -- inline bit-vectors too. |
786 |
(unless (eq uaet 'bit) |
(unless (eq uaet 'bit) |
787 |
;;FIXME string-char -> character for ansi throughout, this is just a bridge for now. |
;;FIXME string-char -> character for ansi throughout, this is just a bridge for now. |
788 |
;;20050509 CM |
;;20050509 CM |
789 |
(if (eq uaet 'string-char) 'character uaet))))) |
(if (eq uaet 'string-char) 'character uaet)))))) |
790 |
|
|
791 |
(setf (symbol-function 'cmp-aref) (symbol-function 'row-major-aref)) |
(setf (symbol-function 'cmp-aref) (symbol-function 'row-major-aref)) |
792 |
|
|