Skip to content
Snippets Groups Projects
Commit 089dd0b7 authored by ram's avatar ram
Browse files

New structure hax.

parent da13257c
No related branches found
No related tags found
No related merge requests found
...@@ -7,7 +7,7 @@ ...@@ -7,7 +7,7 @@
;;; Scott Fahlman or slisp-group@cs.cmu.edu. ;;; Scott Fahlman or slisp-group@cs.cmu.edu.
;;; ;;;
(ext:file-comment (ext:file-comment
"$Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/code/macros.lisp,v 1.35 1992/09/01 17:41:52 ram Exp $") "$Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/code/macros.lisp,v 1.35.1.1 1993/02/04 22:35:38 ram Exp $")
;;; ;;;
;;; ********************************************************************** ;;; **********************************************************************
;;; ;;;
...@@ -166,12 +166,23 @@ ...@@ -166,12 +166,23 @@
(defun %deftype (name expander &optional doc) (defun %deftype (name expander &optional doc)
(ecase (info type kind name) (ecase (info type kind name)
(:primitive (:primitive
(error "Illegal to redefine standard type: ~S." name)) (when *type-system-initialized*
(error "Illegal to redefine standard type: ~S." name)))
#+ns-boot
(:structure (:structure
(warn "Redefining structure type ~S with DEFTYPE." name) (warn "Redefining structure type ~S with DEFTYPE." name)
(c::undefine-structure (info type structure-info name))) (c::undefine-structure (info type structure-info name))
((nil :defined))) (setf (info type kind name) :defined))
(setf (info type kind name) :defined) (:instance
(warn "Redefining class ~S to be a DEFTYPE." name)
(undefine-structure (layout-info (class-layout (info type class name))))
(setf (info type class name) nil)
(setf (info type compiler-layout name) nil)
(setf (info type kind name) :defined))
(:defined)
((nil)
(setf (info type kind name) :defined)))
(setf (info type expander name) expander) (setf (info type expander name) expander)
(when doc (when doc
(setf (documentation name 'type) doc)) (setf (documentation name 'type) doc))
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment