1 ;;;; This software is part of the SBCL system. See the README file for
4 ;;;; This software is derived from the CMU CL system, which was
5 ;;;; written at Carnegie Mellon University and released into the
6 ;;;; public domain. The software is in the public domain and is
7 ;;;; provided with absolutely no warranty. See the COPYING and CREDITS
8 ;;;; files for more information.
10 (in-package "SB!KERNEL")
12 ;;;; This defstruct should appear before any use of WITH-CONDITION-RESTARTS
13 ;;;; so that the slot accessors are transformed.
15 (declaim (inline make-restart
)) ;; for DX allocation
16 (defstruct (restart (:constructor make-restart
17 ;; Having TEST-FUNCTION at the end allows
18 ;; to not replicate its default value in RESTART-BIND.
20 &optional report-function
23 (:copier nil
) (:predicate nil
))
24 (name (missing-arg) :type symbol
:read-only t
)
25 (function (missing-arg) :type function
:read-only t
)
26 (report-function nil
:type
(or null function
) :read-only t
)
27 (interactive-function nil
:type
(or null function
) :read-only t
)
28 (test-function (lambda (cond) (declare (ignore cond
)) t
) :type function
:read-only t
)
29 ;; the list of conditions which are currently associated to the
30 ;; restart. maintained by WITH-CONDITION-RESTARTS in a neither
31 ;; thread- nor interrupt-safe way. This should not be a problem
32 ;; however, since safe uses of restarts have to assume dynamic
34 (associated-conditions '() :type list
))
35 (declaim (notinline make-restart
))
37 #!-sb-fluid
(declaim (freeze-type restart
))