;; 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))
+ ;; 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
;;; A REF represents a reference to a LEAF. REF-REOPTIMIZE is
;;; initially (and forever) NIL, since REFs don't receive any values
;;; and don't have any IR1 optimizer.
-(defstruct (ref (:include node (:reoptimize nil))
+(defstruct (ref (:include node (reoptimize nil))
(:constructor make-ref (derived-type leaf))
(:copier nil))
;; The leaf referenced.