On Sat Mar 06 05:23:08 2010, masak wrote: > <masak> when I write 'our sub foo', the scope of the parameters in the > signature of foo is a global scope rather than a lexical scope, yes? > <TimToady> uh, no > <TimToady> only 'foo' is aliased > <masak> so, how about this? > <masak> rakudo: my $a = 1; sub foo() { my $a = 2; our sub bar($x where > $a) { say $x } }; bar(1); bar(2) > <p6eval> rakudo 974d9a: OUTPUT«1Constraint type check failed for > parameter '$x' [...] > <TimToady> looks like it's getting the wrong $a to me > * masak submits rakudobug > <TimToady> ($a isn't a parameter though) > <pmichaud> sub foo() { my $a = 2; our sub bar($x where $a) { say $x } > }; bar(2); > <pmichaud> rakudo: sub foo() { my $a = 2; our sub bar($x where $a) { > say $x } }; bar(2); > <p6eval> rakudo 974d9a: OUTPUT«Symbol '$a' not predeclared in bar > [...] > <pmichaud> looks like the where clause is attached to the wrong outer > scope > <TimToady> it does at that
Current behavior: 20:20 < [Coke]> rakudo: my $a = 1; sub foo() { my $a = 2; our sub bar($x where $a) { say $x } }; bar(1); bar(2) 20:20 <+p6eval> rakudo 38907e: OUTPUT«Could not find sub &bar in block <anon> at /tmp/XCB2X1q5A9:1 in <anon> at /tmp/XCB2X1q5A9:1» 20:20 < [Coke]> rakudo: sub foo() { my $a = 2; our sub bar($x where $a) { say $x } }; bar(2); 20:20 <+p6eval> rakudo 38907e: OUTPUT«Could not find sub &bar in block <anon> at /tmp/hSS1YJsEDY:1 in <anon> at /tmp/hSS1YJsEDY:1» -- Will "Coke" Coleda