projects
/
sbcl.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
0.8.17.26:
[sbcl.git]
/
src
/
code
/
cross-type.lisp
diff --git
a/src/code/cross-type.lisp
b/src/code/cross-type.lisp
index
752f7c2
..
47fc196
100644
(file)
--- a/
src/code/cross-type.lisp
+++ b/
src/code/cross-type.lisp
@@
-82,6
+82,9
@@
'fixnum)
(t
'integer)))
'fixnum)
(t
'integer)))
+ ((subtypep raw-result 'simple-string)
+ `(simple-base-string ,(length object)))
+ ((subtypep raw-result 'string) 'base-string)
((some (lambda (type) (subtypep raw-result type))
'(array character list symbol))
raw-result)
((some (lambda (type) (subtypep raw-result type))
'(array character list symbol))
raw-result)
@@
-360,6
+363,11
@@
(make-member-type :members (list x)))
(number
(ctype-of-number x))
(make-member-type :members (list x)))
(number
(ctype-of-number x))
+ (string
+ (make-array-type :dimensions (array-dimensions x)
+ :complexp (not (typep x 'simple-array))
+ :element-type (specifier-type 'base-char)
+ :specialized-element-type (specifier-type 'base-char)))
(array
(let ((etype (specifier-type (array-element-type x))))
(make-array-type :dimensions (array-dimensions x)
(array
(let ((etype (specifier-type (array-element-type x))))
(make-array-type :dimensions (array-dimensions x)