Thanks much-- so there's an explicit cut-off at the (Cool)/(Any) level... It seems peculiar that there's often a lot of duplicates in the list, including mysterious entries like "Method+{is-nodal}.new".
On Mon, Jul 30, 2018 at 11:01 PM, Siavash <siavash.askari.n...@gmail.com> wrote: > > "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) >