X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=src%2Fcode%2Ftarget-error.lisp;h=d92a9785ad433831dc9f56cafd50c4606aa14945;hb=7cd7b23c6930e88e2185d76524dc56b789193d51;hp=9a7aa8fce561662b735bc204aa0c33c500e0299d;hpb=9b81111025d01fb7a708e1ab114646e7807d1b46;p=sbcl.git diff --git a/src/code/target-error.lisp b/src/code/target-error.lisp index 9a7aa8f..d92a978 100644 --- a/src/code/target-error.lisp +++ b/src/code/target-error.lisp @@ -37,7 +37,14 @@ (declaim (inline restart-test-function restart-associated-conditions (setf restart-associated-conditions))) -(defstruct (restart (:copier nil) (:predicate nil)) +(defstruct (restart (:constructor make-restart + ;; Having TEST-FUNCTION at the end allows + ;; to not replicate its default value in RESTART-BIND. + (name function + &optional report-function + interactive-function + test-function)) + (:copier nil) (:predicate nil)) (name (missing-arg) :type symbol :read-only t) (function (missing-arg) :type function :read-only t) (report-function nil :type (or null function) :read-only t) @@ -50,6 +57,8 @@ ;; extent. (associated-conditions '() :type list)) +#!-sb-fluid (declaim (freeze-type restart)) + (def!method print-object ((restart restart) stream) (if *print-escape* (print-unreadable-object (restart stream :type t :identity t)