383 |
(deftype lfixnum ()`(signed-lfixnum)) |
(deftype lfixnum ()`(signed-lfixnum)) |
384 |
|
|
385 |
|
|
386 |
(deftype vector (&optional element-type size) |
;;FIXME this is really ugly, but we need nreconstruct-type to return |
387 |
`(array ,element-type (,size))) |
;;values that are equal to normalize type in the compiler (type-and, |
388 |
|
;;etc.) |
389 |
|
;(deftype vector (&optional element-type size) |
390 |
|
; `(array ,element-type (,size))) |
391 |
|
;see below |
392 |
|
|
393 |
(deftype string (&optional size) |
(deftype string (&optional size) |
394 |
`(array character (,size))) |
`(array character (,size))) |
395 |
(deftype base-string (&optional size) |
(deftype base-string (&optional size) |
554 |
(defconstant +array-types+ (si::aelttype-list)) |
(defconstant +array-types+ (si::aelttype-list)) |
555 |
(defconstant +array-types-with-nil-for-ansi+ (append '(nil) +array-types+)) |
(defconstant +array-types-with-nil-for-ansi+ (append '(nil) +array-types+)) |
556 |
|
|
557 |
|
(deftype vector (&optional (element-type '* ep) size) |
558 |
|
(if ep |
559 |
|
`(array ,element-type (,size)) |
560 |
|
`(or ,@(mapcar (lambda (x) `(array ,x (,size))) +array-types-with-nil-for-ansi+)))) |
561 |
|
|
562 |
(defconstant +known-types+ (append +range-types+ |
(defconstant +known-types+ (append +range-types+ |
563 |
(mapcar (lambda (x) `(complex ,x)) +range-types+) |
(mapcar (lambda (x) `(complex ,x)) +range-types+) |
564 |
+singleton-types+ |
+singleton-types+ |