[Openmcl-devel] INVOKE-RESTART bug

Stelian Ionescu sionescu at cddr.org
Thu Jun 3 01:37:17 PDT 2010


When a restart FOO has a non-trivial test,
(invoke-restart (find-restart foo) won't work because invoke-restart
calls the restart's test which will return NIL, and invoke-restart
signals a "Restart ... is not active"

Test case attached

-- 
Stelian Ionescu a.k.a. fe[nl]ix
Quidquid latine dictum sit, altum videtur.
http://common-lisp.net/project/iolib
-------------- next part --------------
(define-condition foo-error (error) ())

(defun signal-foo ()
  (restart-case
      (error 'foo-error)
    (ignore-foo ()
      :report "Ignore FOO error"
      :test (lambda (c) (typep c 'foo-error))
      'yay)))

(defun trigger-bug ()
  (handler-bind ((foo-error
                  (lambda (e)
                    (invoke-restart (find-restart 'ignore-foo e)))))
    (signal-foo)))
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 198 bytes
Desc: This is a digitally signed message part
URL: <https://lists.clozure.com/pipermail/openmcl-devel/attachments/20100603/ceec38c4/attachment.bin>


More information about the Openmcl-devel mailing list