The patch inlined below fixes the display of DEFTYPE lambda lists.
It's compatible enough with older SBCL - extracting the expander's arglist is just a gensym, not technically wrong but not as useful as the destructuring lambda list. While this could be considered a regression, I don't think it needs conditionalizing on SBCL release. The way to do so, in theory, is check whether (:type :lambda-list) is a kind of info by asking for meta-info ... except that it won't actually fix anything because current SBCL reports that (:type :lambda-list) exists, but it never has data.
--- swank-fancy-inspector.lisp~ 2015-04-30 23:24:08.000000000 -0400 +++ swank-fancy-inspector.lisp 2015-04-30 23:34:31.000000000 -0400 @@ -119,10 +119,7 @@ (unless (eq t fun) (append `("Type-specifier lambda-list: " - ,(inspector-princ - (if (eq :primitive kind) - (arglist fun) - (sb-int:info :type :lambda-list symbol))) + ,(inspector-princ (arglist fun)) (:newline)) (multiple-value-bind (expansion ok) (handler-case (sb-ext:typexpand-1 symbol)
Douglas Katzman dougk@google.com writes:
The patch inlined below fixes the display of DEFTYPE lambda lists.
It's compatible enough with older SBCL - extracting the expander's arglist is just a gensym, not technically wrong but not as useful as the destructuring lambda list. While this could be considered a regression, I don't think it needs conditionalizing on SBCL release. The way to do so, in theory, is check whether (:type :lambda-list) is a kind of info by asking for meta-info ... except that it won't actually fix anything because current SBCL reports that (:type :lambda-list) exists, but it never has data.
--- swank-fancy-inspector.lisp~ 2015-04-30 23:24:08.000000000 -0400 +++ swank-fancy-inspector.lisp 2015-04-30 23:34:31.000000000 -0400 @@ -119,10 +119,7 @@ (unless (eq t fun) (append `("Type-specifier lambda-list: "
,(inspector-princ
(if (eq :primitive kind)
(arglist fun)
(sb-int:info :type :lambda-list symbol)))
,(inspector-princ (arglist fun)) (:newline)) (multiple-value-bind (expansion ok) (handler-case (sb-ext:typexpand-1 symbol)
Applied.