X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;ds=sidebyside;f=src%2Fcompiler%2Fnode.lisp;h=293641ea4ad96d53c31e220350ef4933dc1fa1a4;hb=cf607a404d7518e8a18c9e362913f370eb9a5e38;hp=3671b0598c276359f45e7af229e6e1df67cbec42;hpb=581e3d62de8cb37e13ad9db63e5537c0f962be28;p=sbcl.git diff --git a/src/compiler/node.lisp b/src/compiler/node.lisp index 3671b05..293641e 100644 --- a/src/compiler/node.lisp +++ b/src/compiler/node.lisp @@ -127,6 +127,11 @@ ;; 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)) + ;; 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 @@ -216,7 +221,7 @@ ;;; 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 @@ -306,7 +311,9 @@ (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