Seeing the generated code for

  for 1 -> $a { }

The code concerning $_ seems spurious because there is an explicit parameter $a.
It seems that a unneeded call to add_implicit_var is made in
Actions.pm that causes this
code to be generated.
Will track further tomorrow if jonathan++ does not beat me to it.


    find_lex_skip_current $P72, "$/"
    $P73 = new ['Perl6Scalar'], $P72
    setprop $P73, "rw", true
    .lex "$/", $P73
    find_lex_skip_current $P74, "$!"
    $P75 = new ['Perl6Scalar'], $P74
    setprop $P75, "rw", true
    .lex "$!", $P75
    .lex "call_sig", param_76
    new $P77, "Perl6Scalar"
    .lex "$a", $P77


On Thu, Jun 24, 2010 at 11:55 PM, perl6 via RT
<perl6-bugs-follo...@perl.org> wrote:
> Greetings,
>
> This message has been automatically generated in response to the
> creation of a trouble ticket regarding:
>        "Re: [BUG] $_ as a lhs not handled correctly in a given/when",
> a summary of which appears below.
>
> There is no need to reply to this message right now.  Your ticket has been
> assigned an ID of [perl #76068].
>
> Please include the string:
>
>         [perl #76068]
>
> in the subject line of all future correspondence about this issue. To do so,
> you may reply to this message.
>
>                        Thank you,
>                        perl6-bugs-follo...@perl.org
>
> -------------------------------------------------------------------------
> The bug is unrelated to the when construct but is related to the
> handling of iterations.
> The following lines has the same wrong behaviour as the previous one.
>
> $_=1; for 11..12 -> $a {  if $_ == 1 { say "1 : $_"; $_=2  } else {
> say "* : $_ "}  }
>
> On Thu, Jun 24, 2010 at 10:33 PM, Stéphane Payrard <cognomi...@gmail.com> 
> wrote:
>> $_=1; for 11..12 -> $a {  when 1 { say "1 : $_"; $_=2 } when * { say
>> "* : $_ " } }
>>
>> output is "1 : 1\n1 : 1" instead of the expected "1 : 1\n* : 2".
>>
>> The example is golfed and artificial. But there can be legitimate
>> purposes iterating,
>> modifying $_ in a branch and branching accordingly in the next iteration,
>> with the loop iterator not stored in $_.
>>
>> --
>> cognominal stef
>>
>
>
>
> --
> cognominal stef
>
>



-- 
cognominal stef

Reply via email to