# New Ticket Created by
# Please include the string: [perl #130763]
# in the subject line of all future correspondence about this issue.
# <URL: https://rt.perl.org/Ticket/Display.html?id=130763 >
Hi,
I was trying to make an array of hashes which had one member an
anonymous class for some tests, so I did:
my @f = %{ class => class { has Int $.attr; }, }; say @f.perl
Which gave rise to:
When invoking 2 '', provided outer frame 0x2b11cb0 (4 '<unit>') does
not match expected static frame 0x2b11db8 (3 '')
in block <unit> at -e line 1
Which was definitely unexpected and not something I had seen before.
Naming the class gives a different errror but suggests everything
inside the outer curlies is being interpreted as a block for some
reason:
my @f = %{ class => class Foo { has Int $.attr; }, }; say @f.perl
Giving:
Odd number of elements found where hash initializer expected:
Only saw: -> ;; $_? is raw { #`(Block|50212200) ... }
in block <unit> at -e line 1
Inlining the class does work like that does work without the additional
curlies:
my %f = class => class { has Int $.attr; }; say %f.perl
Giving:
{:class(<anon|60919760>)}
Of course what I actually meant originally was:
my @f = (%( "class" => class { has Int $.attr; }, ),); say @f.perl
So I guess at the very least it's a LTA error message but does seem to
point to some other bug.