The problem is the operator returns a failure, but since we're assigning it doesn't get sunk and so is silent.
I see 16 fail()s in src/core/native_array.pm and I'm unsure what the best way to do this (lizmat, any idea?) Along with the silent one for STORE, the .splice ones also explode prematurely by being stuffed into a native type somewhere: my int @a = ^Inf; # Failure is silent my int @a; @a.append: 1...*; # Failure explodes my int @a; @a.unshift: 1...*; # Failure explodes my int @a; @a.splice: 1...*; # Failure, gives: <camelia> rakudo-moar 19df35: OUTPUT«This type cannot unbox to a native integer: P6opaque, Failure in block <unit> at <tmp> line 1» On Thu, 29 Dec 2016 09:33:20 -0800, alex.jakime...@gmail.com wrote: > Code: > my int @a = ^Inf; dd @a > > > Result (2015.12,2016.02): > This type cannot unbox to a native integer > in block <unit> at /tmp/fdFVh_0R7j line 1 > > > Result (2016.03,HEAD): > array[int].new() > > > > In other words, ^Inf does nothing when assigned to @a. Even though the > previous error message was LTA, the behavior was better because it > wasn't swallowing it silently. > > Bisectable points to > https://github.com/rakudo/rakudo/commit/2a20197e8ffbc7e0f6ff80794509ee14db93c368