Skip to content

Instantly share code, notes, and snippets.

@gfldex
Last active March 15, 2021 21:55
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save gfldex/c5f5b4d0192a1abd17b48b9554be8004 to your computer and use it in GitHub Desktop.
Save gfldex/c5f5b4d0192a1abd17b48b9554be8004 to your computer and use it in GitHub Desktop.
use v6.e.PREVIEW;
use Test;
{
CONTROL {
when CX::Take { is .payload, 'take', ‚payload is exposed for CX::Take‘ }
}
take 'take';
}
{
CONTROL {
when CX::Succeed { is .payload, 'succeed', ‚payload is exposed for CX::Succeed‘ }
}
succeed 'succeed';
}
{
CONTROL {
when CX::Return { is .payload, 'return', ‚payload is exposed for CX::Return‘ }
}
return 'return';
}
{
CONTROL {
when CX::Emit { is .payload, 'emit', ‚payload is exposed for CX::Emit‘ }
}
emit 'emit';
}
{
label:
CONTROL {
when CX::Next { is .payload, label, ‚payload is exposed for CX::Next‘ }
}
next label;
}
{
label:
CONTROL {
when CX::Redo { is .payload, label, ‚payload is exposed for CX::Redo‘ }
}
redo label;
}
{
label:
CONTROL {
when CX::Last { is .payload, label, ‚payload is exposed for CX::Last‘ }
}
last label;
}
{
my $payload = 0;
CONTROL {
when CX::WithPayload {
$payload = $payload +| .payload;
.resume;
}
}
take 1;
succeed 2;
emit 4;
is $payload, 7, ‚CX::WithPayload and .resuming‘;
}
# vim: set filetype=rakudotest :
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment