X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=src%2Fcompiler%2Fcompiler-deftype.lisp;h=c4a92a5c8c2111978cd00f2293209579a1ba366f;hb=158f220d2e6b44e48806480d6498466b9fc7eb62;hp=20b08b5e0d46b73875aebd43add82d4037da4848;hpb=63cef087068afc157283c0a05ae1f16b962303aa;p=sbcl.git diff --git a/src/compiler/compiler-deftype.lisp b/src/compiler/compiler-deftype.lisp index 20b08b5..c4a92a5 100644 --- a/src/compiler/compiler-deftype.lisp +++ b/src/compiler/compiler-deftype.lisp @@ -14,14 +14,16 @@ (/show0 "compiler-deftype.lisp 14") (defun %compiler-deftype (name expander &optional doc) + (with-single-package-locked-error + (:symbol name "defining ~A as a type specifier")) (ecase (info :type :kind name) (:primitive (when *type-system-initialized* (error "illegal to redefine standard type: ~S" name))) (:instance (warn "The class ~S is being redefined to be a DEFTYPE." name) - (undefine-structure (layout-info (class-layout (sb!xc:find-class name)))) - (setf (class-cell-class (find-class-cell name)) nil) + (undefine-structure (layout-info (classoid-layout (find-classoid 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)) (:defined