X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;ds=sidebyside;f=src%2Fcode%2Fcross-type.lisp;h=1aefd7f391619a30a527a767253f1f0bdfe10801;hb=063f2d867cfdfee8a7cbab17e6c5054d9c6f3ad1;hp=557f6db0b0e7bba54654c095b7b4f59752133d4d;hpb=9489abab7f981b8eea2aec8a883f2eb48d4cb138;p=sbcl.git diff --git a/src/code/cross-type.lisp b/src/code/cross-type.lisp index 557f6db..1aefd7f 100644 --- a/src/code/cross-type.lisp +++ b/src/code/cross-type.lisp @@ -86,7 +86,7 @@ '(array character list symbol)) raw-result) (t - (error "can't handle TYPE-OF ~S in cross-compilation"))))) + (error "can't handle TYPE-OF ~S in cross-compilation" object))))) ;;; Is SYMBOL in the CL package? Note that we're testing this on the ;;; cross-compilation host, which could do things any old way. In @@ -360,6 +360,11 @@ (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) @@ -371,7 +376,7 @@ (cond ((typep x 'standard-char) ;; (Note that SBCL doesn't distinguish between BASE-CHAR and ;; CHARACTER.) - (find-classoid 'base-char)) + (specifier-type 'base-char)) ((not (characterp x)) nil) (t