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