+
+(defoptimizer (make-array derive-type)
+ ((dims &key element-type adjustable fill-pointer displaced-to))
+ (derive-make-array-type dims element-type adjustable
+ fill-pointer displaced-to))
+
+(defoptimizer (%make-array derive-type)
+ ((dims widetag n-bits &key adjustable fill-pointer displaced-to))
+ (declare (ignore n-bits))
+ (let ((saetp (and (constant-lvar-p widetag)
+ (find (lvar-value widetag)
+ sb!vm:*specialized-array-element-type-properties*
+ :key #'sb!vm:saetp-typecode))))
+ (derive-make-array-type dims (if saetp
+ (sb!vm:saetp-ctype saetp)
+ *wild-type*)
+ adjustable fill-pointer displaced-to)))
+