diff --git a/compiler/proclaim.lisp b/compiler/proclaim.lisp index 9569660b1467544ea11d2f8c58118e8f9e53b594..564b5394ff8af85570124435fd6cd12c8b44f4f1 100644 --- a/compiler/proclaim.lisp +++ b/compiler/proclaim.lisp @@ -187,7 +187,11 @@ (let ((name (dd-name info))) (dolist (inc (dd-includes info)) - (pushnew name (dd-included-by (info type structure-info inc)))) + (let ((info (info type structure-info inc))) + (unless info + (error "Structure type ~S is included by ~S but not defined." + inc name)) + (pushnew name (dd-included-by info)))) (let ((old (info type structure-info name))) (when old @@ -198,10 +202,6 @@ (when (info type expander name) (setf (info type expander name) nil))) - (dolist (inc (dd-includes info)) - (pushnew (dd-name info) - (dd-included-by (info type structure-info inc)))) - ;;; ### Should declare arg/result types. (let ((copier (dd-copier info))) (when copier