From b279f60eac54b3da3b93dc065f4ab8d899e1b0b7 Mon Sep 17 00:00:00 2001
From: ram <ram>
Date: Fri, 1 Jun 1990 13:48:24 +0000
Subject: [PATCH] Changed FBOUNDP conditionals to test
 *TYPE-SYSTEM-INITIALIZED* instead, sicne SPECIFIER-TYPE is FBOUND before the
 type system is fully initialized.

---
 compiler/proclaim.lisp | 11 ++++++++---
 1 file changed, 8 insertions(+), 3 deletions(-)

diff --git a/compiler/proclaim.lisp b/compiler/proclaim.lisp
index eaae34c68..1a9a3fad6 100644
--- a/compiler/proclaim.lisp
+++ b/compiler/proclaim.lisp
@@ -15,6 +15,11 @@
 ;;;
 (in-package 'c)
 
+;;; True if the type system has been properly initialized, and thus is o.k. to
+;;; use.
+;;;
+(defvar *type-system-initialized* nil)
+
 ;;; The Cookie holds information about the compilation environment for a node.
 ;;; See the Node definition for a description of how it is used.
 ;;;
@@ -133,7 +138,7 @@
 	 (clear-info variable constant-value name)
 	 (setf (info variable kind name) :special)))
       (type
-       (when (fboundp 'specifier-type)
+       (when *type-system-initialized*
 	 (let ((type (specifier-type (first args))))
 	   (dolist (name (rest args))
 	     (unless (symbolp name)
@@ -141,7 +146,7 @@
 	     (setf (info variable type name) type)
 	     (setf (info variable where-from name) :declared)))))
       (ftype
-       (when (fboundp 'specifier-type)
+       (when *type-system-initialized*
 	 (let ((type (specifier-type (first args))))
 	   (unless (csubtypep type (specifier-type 'function))
 	     (error "Declared functional type is not a function type: ~S."
@@ -151,7 +156,7 @@
 	     (setf (info function type name) type)
 	     (setf (info function where-from name) :declared)))))
       (function
-       (when (fboundp 'specifier-type)
+       (when *type-system-initialized*
 	 (%proclaim `(ftype (function . ,(rest args)) ,(first args)))))
       (optimize
        (setq *default-cookie*
-- 
GitLab