method can

Documentation for method can assembled from the following types:

role Metamodel::MROBasedMethodDispatch

From Metamodel::MROBasedMethodDispatch

(Metamodel::MROBasedMethodDispatch) method can

method can($obj$name)

Returns the list of methods of that name the object can do.

class Metamodel::ClassHOW

From Metamodel::ClassHOW

(Metamodel::ClassHOW) method can

method can(Metamodel::ClassHOW:D: $obj$method-name)

Given a method name, it returns a List of methods that are available with this name.

class A      { method x($a{} };
class B is A { method x()   {} };
say B.^can('x').elems;              # OUTPUT: «2␤» 
for B.^can('x'{
    say .arity;                     # OUTPUT: «1, 2␤» 
}

In this example, class B has two possible methods available with name x (though a normal method call would only invoke the one installed in B directly). The one in B has arity 1 (i.e. it expects one argument, the invocant (self)), and the one in A expects 2 arguments (self and $a).