(t
(error 'simple-type-error
:datum x
- :expected-type 'stringable
+ :expected-type 'string-designator
:format-control "~S cannot be coerced to a string."
:format-arguments (list x)))))
;;; strings in the unasterisked versions and using this in the
;;; transforms conditional on SAFETY>SPEED,SPACE).
(defun %check-vector-sequence-bounds (vector start end)
- (declare (type vector vector)
- (type index start)
- (type (or index null) end))
- (let ((length (length vector)))
- (if (<= 0 start (or end length) length)
- (or end length)
- (signal-bounding-indices-bad-error string start end))))
+ (%check-vector-sequence-bounds vector start end))
(eval-when (:compile-toplevel)
;;; WITH-ONE-STRING is used to set up some string hacking things. The
(using char-equal) of the two strings. Otherwise, returns ()."
(string-not-greaterp* string1 string2 start1 end1 start2 end2))
-(defun make-string (count &key element-type ((:initial-element fill-char)))
+(defun make-string (count &key
+ (element-type 'character)
+ ((:initial-element fill-char)))
#!+sb-doc
"Given a character count and an optional fill character, makes and returns
- a new string Count long filled with the fill character."
- (declare (fixnum count)
- (ignore element-type))
+ a new string COUNT long filled with the fill character."
+ (declare (fixnum count))
(if fill-char
- (do ((i 0 (1+ i))
- (string (make-string count)))
- ((= i count) string)
- (declare (fixnum i))
- (setf (schar string i) fill-char))
- (make-string count)))
+ (make-string count :element-type element-type :initial-element fill-char)
+ (make-string count :element-type element-type)))
(flet ((%upcase (string start end)
(declare (string string) (index start) (type sequence-end end))