I feel this now belongs in the DIHWIDT category.
If you want ?C to always return True, add a method "Bool" rather than a method
"defined":
$ 6 'class C { method Bool { True } }; say ?C'
True
I think this is also clearer, as prefix:<?> generally means boolification, aka
.Bool.
So I would reject this as ENOTABUG.
> On 23 Jan 2017, at 10:37, Aleks-Daniel Jakimenko-Aleksejev (via RT)
> <[email protected]> wrote:
>
> # New Ticket Created by Aleks-Daniel Jakimenko-Aleksejev
> # Please include the string: [perl #130629]
> # in the subject line of all future correspondence about this issue.
> # <URL: https://rt.perl.org/Ticket/Display.html?id=130629 >
>
>
> Code:
> class C { method defined { True } }; say ?C
>
> Result (2015.12,2016.02):
> True
>
> Result (2016.03,HEAD):
> False
>
>
>
> Bisectable points to
> https://github.com/rakudo/rakudo/commit/24b4b23a80337888cf5ea47b091d218bc884d682
>
> The commit message did not indicate that “defined” method should no longer
> work, so my best guess is that the change is not intentional.
>
> However, if this is not supposed to work, then what about throwing an error
> when the user attempts to create a “defined” method?