On Tue, 09 May 2017 11:17:23 -0700, b...@abrij.org wrote:
> 
> There are some misbehaviors when a next clause is encountered on what
> would be the last iteration of a loop construct.  An extra Mu is
> injected into the return value for that iteration, and the termination
> test may be bypassed.
> 
> skids: m: my $b; (loop ($b = 4; $b; $b--) { next if $b == 1; $_
> }).note
> (02:05:08 PM) camelia: rakudo-moar 6bb1b5: OUTPUT: «((Any) (Any) (Any)
> (Mu) (Any) (Any) (Any) (Any) (Any) (Any) (Any) (Any) (Any) (Any) (Any)
> (Any) (Any) (Any) (Any) (Any) (Any) (Any) (Any) (Any) (Any) (Any)
> (Any) (Any) (Any) (Any) (Any) (Any) (Any) (Any) (Any) (Any) (Any)
> (Any) (Any) (Any) (Any) (Any) (A…»
> 
> m: my $b; (loop ($b = 4; $b > 0; $b--) { next if $b == 1; $b }).note #
> version without escaping the termination condition
> (02:13:17 PM) camelia: rakudo-moar 6bb1b5: OUTPUT: «(4 3 2 (Mu))␤»
> (02:13:25 PM) skids: still have that Mu.


Also seems to affect other loop constructs.
skids: Ooh.  also affect while.
(02:19:21 PM) skids: m: my $b =4; (while ($b--) { next if $b == 0; $b }).note
(02:19:22 PM) camelia: rakudo-moar 6bb1b5: OUTPUT: «(3 2 1 (Mu) -2 -3 -4 -5 -6 
-7 -8 -9 -10 -11 -12 -13 -14 -15 -16 -17 -18 -19 -20 -21 -22 -23 -24 -25 -26 
-27 -28 -29 -30 -31 -32 -33 -34 -35 -36 -37 -38 -39 -40 -41 -42 -43 -44 -45 -46 
-47 -48 -49 -50 -51 -52 -53 -54 -55 -56 -57 -58 -59 -60 -61 -62 -63 -6…»

Reply via email to