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

Reply via email to