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



Reply via email to