(in-package "SB!IMPL")
-(file-comment
- "$Header$")
-
-(defmacro sb!xc:deftype (name arglist &body body)
+(def!macro sb!xc:deftype (name arglist &body body)
#!+sb-doc
"Define a new type, with syntax like DEFMACRO."
(unless (symbolp name)
(error "type name not a symbol: ~S" name))
- (let ((whole (gensym "WHOLE-")))
+ (with-unique-names (whole)
(multiple-value-bind (body local-decs doc)
(parse-defmacro arglist whole body name 'deftype :default-default ''*)
`(eval-when (:compile-toplevel :load-toplevel :execute)
(%compiler-deftype ',name
- #'(lambda (,whole)
- ,@local-decs
- (block ,name ,body))
+ (lambda (,whole)
+ ,@local-decs
+ ,body)
,@(when doc `(,doc)))))))