aboutsummaryrefslogtreecommitdiff
path: root/src/combinator.lisp
diff options
context:
space:
mode:
authorSean Whitton <spwhitton@spwhitton.name>2021-07-06 11:04:58 -0700
committerSean Whitton <spwhitton@spwhitton.name>2021-07-10 20:46:00 -0700
commitc6f28e53564be4d80d8f4ef98ab0251bec8409cd (patch)
treea2de65c13fee8e0aabb902c1197316e7112853f8 /src/combinator.lisp
parent28350744e602b3291a169ea75713b1fc3caaef5d (diff)
downloadconsfigurator-c6f28e53564be4d80d8f4ef98ab0251bec8409cd.tar.gz
make it possible to distinguish SKIP-PROPERTY restarts in debugger
Signed-off-by: Sean Whitton <spwhitton@spwhitton.name>
Diffstat (limited to 'src/combinator.lisp')
-rw-r--r--src/combinator.lisp9
1 files changed, 4 insertions, 5 deletions
diff --git a/src/combinator.lisp b/src/combinator.lisp
index 420576e..9e5ee8f 100644
--- a/src/combinator.lisp
+++ b/src/combinator.lisp
@@ -141,16 +141,15 @@ apply the elements of REQUIREMENTS in reverse order."
(not (get (car propapp) 'desc))))))
result)
(unwind-protect-in-parent
- ;; TODO Nested combinators can mean that we establish this
- ;; restart more than once, and they all appear in the debugger
- ;; without any way to distinguish them. Perhaps we can use the
- ;; :TEST argument to RESTART-CASE such that only the
- ;; innermost(?) skip option appears.
(setq result
(restart-case (if announce
(announce-propapp-apply propapp)
(propapp-apply propapp))
(skip-property ()
+ :report (lambda (s)
+ (format s "Skip (~{~S~^ ~})"
+ (cons (car propapp)
+ (propappargs propapp))))
(signal 'skipped-properties)
'failed-change)))
(when (and (plusp (length buffer))