On Sat Oct 20 18:12:38 2012, coke wrote:
> On Tue May 04 14:13:17 2010, masak wrote:
> > <masak> rakudo: sub foo(@a) { @a[1] = "NOES" }; my @a = <OH HAI>;
> > foo(@a); say ~@a
> > <p6eval> rakudo 1eef08: OUTPUT«OH NOES»
> > <masak> is this supposed to be allowed?
> > <pmichaud> masak: I haven't seen a clear answer to that question.
> > <masak> pmichaud: ISTR there was some wording in the spec about the
> > readonlyness stretching 'one level down' into arrays/hashes, but I
> > can't find it now, despite trying.
> > <pmichaud> masak: From an implementation perspective, I see nothing
> > but pain in trying to make that happen.
> > <masak> pmichaud: anyway, this already fails:
> > <masak> rakudo: sub foo(@a) { @a[0, 1] = <OH NOES> }; my @a = 0, 1;
> > foo(@a)
> > <p6eval> rakudo 1eef08: OUTPUT«Cannot assign to readonly value [...]
> > <masak> so something is inconsistent, at least.
> > * masak submits rakudobug
>
> Behavior changed:
>
> > sub foo(@a) { @a[1] = "NOES" }; my @a = <OH HAI>;
> OH HAI
>
> > sub foo(@a) { @a[0, 1] = <OH NOES> }; my @a = 0, 1; foo(@a)
> OH NOES
These are now the same (both in nom and glr, even)
12:10 < [Coke]> m: sub foo(@a) { @a[1] = "NOES" }; my @a = <OH HAI>; foo(@a);
say ~@a
12:10 <+camelia> rakudo-moar 47ddca: OUTPUT«OH NOES»
12:10 < GLRelia> rakudo-moar 345953: OUTPUT«OH NOES»
12:11 < [Coke]> m: sub foo(@a) { @a[0, 1] = <OH NOES> }; my @a = 0, 1; foo(@a);
say ~@a;
12:11 <+camelia> rakudo-moar 47ddca: OUTPUT«OH NOES»
12:11 < GLRelia> rakudo-moar 345953: OUTPUT«OH NOES»
Closable with tests?
--
Will "Coke" Coleda