# New Ticket Created by "Brian S. Julin"
# Please include the string: [perl #127711]
# in the subject line of all future correspondence about this issue.
# <URL: https://rt.perl.org/Ticket/Display.html?id=127711 >
$ perl6 -e '{ 42.say; X::AdHoc.new(:payload(43)).throw; 44.say; CATCH { }; };
CATCH { when X::AdHoc { $_.message.say; $_.resume } }'
42
43
Trying to unwind over wrong handler
Notably this prevents resuming exceptions thrown from inside a Lock.protect
block.
Without the inner CATCH block, works as expected:
$ perl6 -e '{ 42.say; X::AdHoc.new(:payload(43)).throw; 44.say; }; CATCH { when
X::AdHoc { $_.message.say; $_.resume } }'
42
43
44
IRC discussion:
http://irclog.perlgeek.de/perl6/2016-03-14#i_12182095