projects
/
sbcl.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
0.9.13.3:
[sbcl.git]
/
src
/
compiler
/
deftype.lisp
diff --git
a/src/compiler/deftype.lisp
b/src/compiler/deftype.lisp
index
0e02d0f
..
8c266b3
100644
(file)
--- a/
src/compiler/deftype.lisp
+++ b/
src/compiler/deftype.lisp
@@
-9,20
+9,17
@@
(in-package "SB!IMPL")
(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))
#!+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)
(multiple-value-bind (body local-decs doc)
- (parse-defmacro arglist whole body name 'deftype :default-default ''*)
+ (parse-defmacro arglist whole body name 'deftype :default-default ''*)
`(eval-when (:compile-toplevel :load-toplevel :execute)
`(eval-when (:compile-toplevel :load-toplevel :execute)
- (%compiler-deftype ',name
- #'(lambda (,whole)
- ,@local-decs
- (block ,name ,body))
- ,@(when doc `(,doc)))))))
+ (%compiler-deftype ',name
+ (lambda (,whole)
+ ,@local-decs
+ ,body)
+ ,@(when doc `(,doc)))))))