(with-single-package-locked-error
(:symbol name "defining ~A as a type specifier"))
(ecase (info :type :kind name)
(with-single-package-locked-error
(:symbol name "defining ~A as a type specifier"))
(ecase (info :type :kind name)
(error "illegal to redefine standard type: ~S" name)))
(:instance
(warn "The class ~S is being redefined to be a DEFTYPE." name)
(error "illegal to redefine standard type: ~S" name)))
(:instance
(warn "The class ~S is being redefined to be a DEFTYPE." name)
(setf (classoid-cell-classoid (find-classoid-cell name :create t)) nil)
(setf (info :type :compiler-layout name) nil)
(setf (info :type :kind name) :defined))
(setf (classoid-cell-classoid (find-classoid-cell name :create t)) nil)
(setf (info :type :compiler-layout name) nil)
(setf (info :type :kind name) :defined))
- (setf (info :type :expander name) expander)
+ (setf (info :type :expander name) expander
+ (info :type :lambda-list name) lambda-list)
+ (sb!c:with-source-location (source-location)
+ (setf (info :type :source-location name) source-location))
(when doc
(setf (fdocumentation name 'type) doc))
;; ### Bootstrap hack -- we need to define types before %NOTE-TYPE-DEFINED
;; is defined. (FIXME: Do we still need to do this? -- WHN 19990310)
(if (fboundp 'sb!c::%note-type-defined)
(when doc
(setf (fdocumentation name 'type) doc))
;; ### Bootstrap hack -- we need to define types before %NOTE-TYPE-DEFINED
;; is defined. (FIXME: Do we still need to do this? -- WHN 19990310)
(if (fboundp 'sb!c::%note-type-defined)