# New Ticket Created by Zoffix Znet
# Please include the string: [perl #130867]
# in the subject line of all future correspondence about this issue.
# <URL: https://rt.perl.org/Ticket/Display.html?id=130867 >
Some types provide methods, like .Bool, .elems, .Str that are defined for :D
subtypes. However,
these methods are defined as `only` methods, not `multi`, so the dispatch for
:U subtypes fails,
instead of those be handled by Mu.* methods.
I already fixed[^1] a bunch for Baggy role, but I notice other types have
similar issue:
<Zoffix> m: Seq.Bool
<camelia> rakudo-moar dd4dfb: OUTPUT: «Invocant requires an instance of
type Seq, but a type object was passed. Did you forget a .new? in block
<unit> at <tmp> line 1»
We need to check the codebase for more of these. I think some construct similar
to `for Any.^methods(:all)».name -> $name { for @all-core-types { ."$name"() }}`
can be used for automated finding of methods that need to be changed to multies.
[1]
https://github.com/rakudo/rakudo/commit/e8af8553eae9abfe4f5cd02dcf4114c5c4877c51