"Returns a list of public methods available on the class (which includes methods from superclasses and roles). By default this stops at the classes Cool, Any or Mu; to really get all methods, use the :all adverb. If :local is set, only methods declared directly in the class are returned." https://docs.perl6.org/routine/methods
On 2018-07-31 06:56:07 +0430, Joseph Brenner wrote: > I originally thought that $var.^methods gave you a list of all > available methods on $var, but it looks like it doesn't (always?) > report on inherited methods. > > my $stringy = '3.14159'; > say $stringy.^name; > # Str > say $stringy.^mro; > # ((Str) (Cool) (Any) (Mu)) > > The list returned from checking $stringy is the same as just > checking (Str): > > $stringy.^methods > (Str).^methods > > And it includes none of the (Cool) methods: > > (Cool).^methods > > For example, trig functions like "cos" are part of the (Cool) > list, but are not in the $stringy.^methods list, though you can > call clearly them: > > say $stringy.cos > -0.9999999999964793 > > I guess this seems to work to give you the full list of available > methods: > > $stringy.^methods(:all)