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)
>

Reply via email to