Just to clarify, the last snippet now produces 0 0 0 0, which is indeed correct.
There are tests for this change in general, but possibly not for that particular case. Can we get it covered just in case? 「testneeded」 On 2018-02-06 05:51:23, jan-olof.hen...@bredband.net wrote: > On Sun, 28 Aug 2016 02:56:47 -0700, sml...@gmail.com wrote: > > This is how a state variable normally works: > > > > ➜ for ^2 { for ^2 { say (state $a)++ } } > > 0 > > 1 > > 0 > > 1 > > > > But when it is declared inside a {} interpolation in a string, it > > misbehaves: > > > > ➜ for ^2 { for ^2 { say "{ (state $a)++ }" } } > > 0 > > 1 > > 2 > > 3 > > > > It's as if the state variable attaches to the scope of the outer loop > > or mainline, instead of the inner loop like it should. > > Looks as if the code behaves as expected according to jnthn. See > https://irclog.perlgeek.de/perl6-dev/2018-02-06#i_15783359 > > Rejecting issue.