This appears fixed with 869306336fadd85320bfc1

> On 23 May 2015, at 21:16, Sam S. (via RT) <perl6-bugs-follo...@perl.org> 
> wrote:
> 
> # New Ticket Created by  Sam S. 
> # Please include the string:  [perl #125242]
> # in the subject line of all future correspondence about this issue. 
> # <URL: https://rt.perl.org/Ticket/Display.html?id=125242 >
> 
> 
> Trying to call the .perl method on a Hash object which has an explicit type 
> constraint for its keys, fails with an exception.
> 
> Example with a newly instantiated, empty Hash[Str,Any] object:
> 
>    → say Hash[Str,Any].new.perl
>    Cannot call infix:<===>(Str, Mu); none of these signatures match:
>        (Any $?)
>        (Any $a, Any $b)
>        (Int:D \a, Int:D \b)
>        (int $a, int $b)
>        (Num:D \a, Num:D \b)
>        (Num $ where { ... }, Num $ where { ... })
>        (num $a, num $b --> Bool)
>        (Str:D \a, Str:D \b --> Bool)
>        (str $a, str $b --> Bool)
>    in block <unit> at -e:1
>    in any <unit-outer> at -e:1
> 
> Example with a non-empty Hash[Any,Any] object returned by .classify:
> 
>    → say [2, 2.0].classify(*.Int).perl
>    Cannot call infix:<===>(Any, Mu); none of these signatures match:
>        (Any $?)
>        (Any $a, Any $b)
>        (Int:D \a, Int:D \b)
>        (int $a, int $b)
>        (Num:D \a, Num:D \b)
>        (Num $ where { ... }, Num $ where { ... })
>        (num $a, num $b --> Bool)
>        (Str:D \a, Str:D \b --> Bool)
>        (str $a, str $b --> Bool)
>    in block <unit> at -e:1
>    in any <unit-outer> at -e:1
> 
> Iterating over the contents of the hash and calling .perl on individual 
> pairs, works just fine:
> 
>    → say .perl for [2, 2.0].classify(*.Int)
>    2 => [2, 2.0]
> 
> It also works fine for hashes that *don't* have a custom type constraint on 
> the keys, even if they have a constraint on the values:
> 
>    → say Hash[Any].new.perl
>    Hash[Any].new()

Reply via email to