On Sat, Sep 24, 2016 at 07:37:52AM +0000, Lloyd Fournier wrote: > I think this is because .WHAT is a special case. It's not really a method > which is what you need to make *.method work. *.WHAT will always return > (Whatever) immediately.
You're correct that .WHAT is a special case. From S12, "Introspection": These should all be considered built-in language primitives, not true operators or methods, even if a given implementation happens to implement one or more of them that way. I suppose it's possible that *.WHAT should generate a WhateverCode object... but I'm a little disinclined to that. A bit later S12 continues: In general, use of these uppercased accessors in ordinary code should be a red flag that Something Very Strange is going on. (Hence the allcaps.) Most code should use Perl 6's operators that make use of this information implicitly. For instance, instead of $obj.WHAT === Dog ... you usually just want: $obj ~~ Dog So I'd say this isn't actually a bug. Pm