diff --git a/code/type.lisp b/code/type.lisp index 140afb567f27208c6f31dfcf708ad5b5e3d32e57..2fe188c218f8d9175468560cf9b2a1ae77af3b2f 100644 --- a/code/type.lisp +++ b/code/type.lisp @@ -5,7 +5,7 @@ ;;; Carnegie Mellon University, and has been placed in the public domain. ;;; (ext:file-comment - "$Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/code/type.lisp,v 1.31 1998/08/19 15:19:35 dtc Exp $") + "$Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/code/type.lisp,v 1.32 2000/01/10 14:47:02 dtc Exp $") ;;; ;;; ********************************************************************** ;;; @@ -2017,13 +2017,14 @@ (define-type-class union) -;;; If List, then return that, otherwise the OR of the component types. +;;; If List or Bignum then return that, otherwise the OR of the component +;;; types. ;;; (define-type-method (union :unparse) (type) (declare (type ctype type)) - (if (type= type (specifier-type 'list)) - 'list - `(or ,@(mapcar #'type-specifier (union-type-types type))))) + (cond ((type= type (specifier-type 'list)) 'list) + ((type= type (specifier-type 'bignum)) 'bignum) + (t `(or ,@(mapcar #'type-specifier (union-type-types type))))))