The first example works now as expected: $ perl6-m -e 'sub foo ($a, $f) { if $f { foo("z", 0) }; given $a {say $a; say $_} }; foo("x", 1)' z z x x
The second example works on rakudo.jvm but fails on rakudo.moar: $ perl6-j -e 'sub foo ($a, $f) { if $f { foo("z", 0) }; {$_=$a; say $a; say $_} }; foo("x", 1)' z z x x $ perl6-m -e 'sub foo ($a, $f) { if $f { foo("z", 0) }; {$_=$a; say $a; say $_} }; foo("x", 1)' z z z z I added two tests (the second fudged 'todo' for Moar) to S06-advanced/lexical-subs.t with commit https://github.com/perl6/roast/commit/0867f11ce3