X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=src%2Fcode%2Fearly-type.lisp;h=5b761c06ab1dcd4044cd039fd13536cbf10dbfbd;hb=f3491f128307938cc56367f739b8fbf9e5d503b6;hp=ec513da4c6f09e9e9b1fd8e7241c8ace44b43162;hpb=4084b6b95c1d5e0a45e073a9b875d8471efd8505;p=sbcl.git diff --git a/src/code/early-type.lisp b/src/code/early-type.lisp index ec513da..5b761c0 100644 --- a/src/code/early-type.lisp +++ b/src/code/early-type.lisp @@ -547,6 +547,10 @@ (cond ((and (not (eq spec u)) (info :type :builtin spec))) + ((and (consp spec) (symbolp (car spec)) + (info :type :builtin (car spec)) + (let ((expander (info :type :expander (car spec)))) + (and expander (values-specifier-type (funcall expander spec)))))) ((eq (info :type :kind spec) :instance) (find-classoid spec)) ((typep spec 'classoid) @@ -615,6 +619,9 @@ expansion happened." (values nil nil)) ((symbolp spec) (values (info :type :expander spec) (list spec))) + ((and (consp spec) (symbolp (car spec)) (info :type :builtin (car spec))) + ;; see above + (values nil nil)) ((and (consp spec) (symbolp (car spec))) (values (info :type :expander (car spec)) spec)) (t nil)))