Use SB!IMPL as the implementation package for PARSE-BODY
[sbcl.git] / src / code / restart.lisp
blobb87d5b85d8b457c62df693fe0ab5aff452a8ab77
1 ;;;; This software is part of the SBCL system. See the README file for
2 ;;;; more information.
3 ;;;;
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.
19 (name function
20 &optional report-function
21 interactive-function
22 test-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
33 ;; extent.
34 (associated-conditions '() :type list))
35 (declaim (notinline make-restart))
37 #!-sb-fluid (declaim (freeze-type restart))