# New Ticket Created by  Christian Bartolomaeus 
# Please include the string:  [perl #132694]
# in the subject line of all future correspondence about this issue. 
# <URL: https://rt.perl.org/Ticket/Display.html?id=132694 >


On the JVM backend the coercion type returned from .keyof for a
regular hash is not the same object as Str(Any):

$ ./perl6-j -e 'use nqp; say nqp::eqaddr(Str(Any), {"a"=>1}.keyof)'
0

$ ./perl6-m -e 'use nqp; say nqp::eqaddr(Str(Any), {"a"=>1}.keyof)'
1

That's why some tests in S09-typed-arrays/hashes.t and S32-hash/perl.t
have a new failure mode after fixing RT #132673. The objects are
compared with infix:<===> from Any.pm and that uses nqp::eqaddr. [1]

$ ./perl6-j -Ilib -e 'use Test; is({"a" => 1}.keyof, Str(Any))'
not ok 1 - 
# Failed test at -e line 1
# expected: (Str(Any))
#      got: (Str(Any))

I'm opening this ticket in order to update the todo message of said
tests.

[1]
https://github.com/rakudo/rakudo/blob/14c2cdb314ee5bbda34354ef535d4909dcea845a/src/core/Any.pm#L488

Reply via email to