X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;ds=sidebyside;f=src%2Fcode%2Fdescribe.lisp;h=5fe79b8fbf75c0853b2c76a1efd6ce2ce9c92335;hb=d4b738d6c0b354de817fa490b50814e40872b3d0;hp=20a7548053db7be941654bf57dd7463ba197d02b;hpb=341543f0883bf5300785b56990e94093afd6d943;p=sbcl.git diff --git a/src/code/describe.lisp b/src/code/describe.lisp index 20a7548..5fe79b8 100644 --- a/src/code/describe.lisp +++ b/src/code/describe.lisp @@ -60,26 +60,24 @@ (defmethod describe-object ((x array) s) (fresh-line s) (pprint-logical-block (s nil) - (let ((rank (array-rank x))) - (cond ((= rank 1) - (format s - "~S is a ~:[~;displaced ~]vector of length ~S." x - (and (array-header-p x) - (%array-displaced-p x) - ) (length x)) - (when (array-has-fill-pointer-p x) - (format s "~@:_It has a fill pointer, currently ~S." - (fill-pointer x)))) - (t - (format s "~S ~_is " x) - (write-string (if (%array-displaced-p x) "a displaced" "an") s) - (format s " array of rank ~S." rank) - (format s "~@:_Its dimensions are ~S." (array-dimensions x))))) + (cond + ((= 1 (array-rank x)) + (format s "~S is a vector with ~D elements." + x (car (array-dimensions x))) + (when (array-has-fill-pointer-p x) + (format s "~@:_It has a fill pointer value of ~S." + (fill-pointer x)))) + (t + (format s "~S is an array of dimension ~:S." + x (array-dimensions x)))) (let ((array-element-type (array-element-type x))) (unless (eq array-element-type t) (format s "~@:_Its element type is specialized to ~S." - array-element-type)))) + array-element-type))) + (if (and (array-header-p x) (%array-displaced-p x)) + (format s "~@:_The array is displaced with offset ~S." + (%array-displacement x)))) (terpri s)) (defmethod describe-object ((x hash-table) s)