Skip Menu |
Report information
Id: 132694
Status: new
Priority: 0/
Queue: perl6

Owner: Nobody
Requestors: bartolin [at] gmx.de
Cc:
AdminCc:

Severity: (no value)
Tag: (no value)
Platform: (no value)
Patch Status: (no value)
VM: JVM



Date: Mon, 8 Jan 2018 21:10:13 +0100
From: Christian Bartolomaeus <bartolin [...] gmx.de>
Subject: [JVM] Coercion type Str(Any) returned from .keyof is not the same object as Str(Any)
To: rakudobug [...] perl.org
Download (untitled) / with headers
text/plain 792b
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


This service is sponsored and maintained by Best Practical Solutions and runs on Perl.org infrastructure.

For issues related to this RT instance (aka "perlbug"), please contact perlbug-admin at perl.org