This was resolved in (2016-08-03)
https://github.com/rakudo/rakudo/commit/5e61516a3fd290d93a7e18899483ccb2b9ba3a30

W4anD0eR96 committed some tests for it:
https://github.com/perl6/roast/commit/48124e0123c27a7c5f140eb0602a15eeeea32a56

And then beefed up the tests for other phasers:
https://github.com/perl6/roast/commit/2a3717c134d74aa1974c434f046e3a5908b7cdc8

This revealed an issue in KEEP, which is now filed in
https://github.com/rakudo/rakudo/issues/1290

Closing.

On 2015-06-26 03:45:08, elizabeth wrote:
> [12:35:07] <lizmat> m: for ^2 { NEXT .say } # feels like a
> rakudobug
> [12:35:07] <+camelia> rakudo-moar a15dac: OUTPUT«Cannot call method
> 'say' on a null object␤ in block <unit> at /tmp/gV2l9tWyYZ:1␤␤»
> [12:35:32] <lizmat> m: for ^2 { NEXT $_.say } # same
> [12:35:32] <+camelia> rakudo-moar a15dac: OUTPUT«Cannot call method
> 'say' on a null object␤ in block <unit> at /tmp/2JExRjB36d:1␤␤»
> [12:35:45] <lizmat> m: for ^2 { .say } # ok
> [12:35:46] <+camelia> rakudo-moar a15dac: OUTPUT«0␤1␤»
> [12:35:54] <lizmat> moritz: agree ?
> [12:37:49] <moritz> lizmat: yes
>
> Same for LAST:
>
> $ 6 'for ^10 { LAST .say }'
> Cannot call method 'say' on a null object
>
> Not for FIRST, LEAVE, PRE, UNDO
> $ 6 'for ^1 { FIRST .say }'
> 0
> $ 6 'for ^1 { LEAVE .say }'
> 0
> $ 6 'for ^1 { PRE .say }’
> 0
> $ 6 'for ^1 { UNDO .say }’
> 0
> $ 6 'for ^1 { KEEP .say; 1 }’
> 0
>
> POST has a different failure mode:
>
> $ 6 'for ^1 { POST .say }’
> Nil
>
>
> Liz

Reply via email to