# New Ticket Created by "Martin Berends"
# Please include the string: [perl #64046]
# in the subject line of all future correspondence about this issue.
# <URL: http://rt.perl.org/rt3/Ticket/Display.html?id=64046 >
Unsure whether the following should work, but it doesn't:
perl6 -e 'enum E <foo bar>; my E $x=E::bar; given $x { when E::foo {say
"FOO"} when E::bar {say "BAR"}};'
Method 'ACCEPTS' not found for invocant of class ''
The problem seems to be that the 'when' cannot perform a smart match on an
enum member. A workaround is to cast the enum member to an int, but this
is surely not as intended:
perl6 -e 'enum E <foo bar>; my E $x=E::bar; given $x { when int E::foo
{say "FOO"} when int E::bar {say "BAR"}};'
BAR
The workaround is successful for example around line 442 etc of
http://github.com/eric256/perl6-examples/blob/master/lib/Pod/Parser.pm
See also: http://rt.perl.org/rt3/Public/Bug/Display.html?id=63878