diff --git a/compiler/proclaim.lisp b/compiler/proclaim.lisp index 2f6497d3f74f5da7ae91be19618aafd5062e858c..6a652539bd6351569a4ab1a65207086eaab039e4 100644 --- a/compiler/proclaim.lisp +++ b/compiler/proclaim.lisp @@ -7,7 +7,7 @@ ;;; Scott Fahlman or slisp-group@cs.cmu.edu. ;;; (ext:file-comment - "$Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/compiler/proclaim.lisp,v 1.27 1993/02/26 08:39:13 ram Exp $") + "$Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/compiler/proclaim.lisp,v 1.28 1993/03/16 01:52:26 ram Exp $") ;;; ;;; ********************************************************************** ;;; @@ -346,9 +346,14 @@ (setf (info function where-from name) :declared))))))) (freeze-type (dolist (type args) - (specifier-type type); Give undefined type warnings... - (when (eq (info type kind type) :instance) - (setf (class-state (find-class type)) :sealed)))) + (let ((class (specifier-type type))) + (when (typep class 'class) + (setf (class-state class) :sealed) + (let ((subclasses (class-subclasses class))) + (when subclasses + (do-hash (subclass layout subclasses) + (declare (ignore layout)) + (setf (class-state subclass) :sealed)))))))) (function ;; ;; Handle old-style FUNCTION declaration, which is a shorthand for