0.7.10.6:
[sbcl.git] / src / compiler / node.lisp
index 44f0bfe..293641e 100644 (file)
   ;;    will be used. In the latter case, LTN must ensure that a safe
   ;;    implementation *is* used.
   ;;
-  ;; :ERROR
-  ;;    There is a compile-time type error in some use of this
-  ;;    continuation. A type check should still be generated, but be
-  ;;    careful.
-  ;;
   ;; This is computed lazily by CONTINUATION-DERIVED-TYPE, so use
   ;; CONTINUATION-TYPE-CHECK instead of the %'ed slot accessor.
-  (%type-check t :type (member t nil :deleted :no-check :error))
+  (%type-check t :type (member t nil :deleted :no-check))
+  ;; Asserted type, weakend according to policies
+  (type-to-check *wild-type* :type ctype)
+  ;; Cached type which is checked by DEST. If NIL, then this must be
+  ;; recomputed: see CONTINUATION-EXTERNALLY-CHECKABLE-TYPE.
+  (%externally-checkable-type nil :type (or null ctype))
   ;; something or other that the back end annotates this continuation with
   (info nil)
   ;; uses of this continuation in the lexical environment. They are
 ;;;    is set when a continuation type assertion is strengthened.
 ;;;    TEST-MODIFIED is set whenever the test for the ending IF has
 ;;;    changed (may be true when there is no IF.)
-(def-boolean-attribute block
+(!def-boolean-attribute block
   reoptimize flush-p type-check delete-p type-asserted test-modified)
 
 ;;; FIXME: Tweak so that definitions of e.g. BLOCK-DELETE-P is
   (test-constraint nil :type (or sset null)))
 (def!method print-object ((cblock cblock) stream)
   (print-unreadable-object (cblock stream :type t :identity t)
-    (format stream ":START c~W" (cont-num (block-start cblock)))))
+    (format stream "~W :START c~W"
+            (block-number cblock)
+            (cont-num (block-start cblock)))))
 
 ;;; The BLOCK-ANNOTATION class is inherited (via :INCLUDE) by
 ;;; different BLOCK-INFO annotation structures so that code