In Type system§
See primary documentation in context for trait hides.
The trait hides provides inheritance without being subject to re-dispatching.
class A { method m { say 'i am hidden' } } class B hides A { method m { nextsame } method n { self.A::m } }; B.new.m; # No output B.new.n; # OUTPUT: «i am hidden»
The trait is hidden allows a class to hide itself from re-dispatching.
class A is hidden { method m { say 'i am hidden' } } class B is A { method m { nextsame } method n { self.A::m } } B.new.m; # No output B.new.n; # OUTPUT: «i am hidden»
Classes declared with is hidden also generate slightly different method signatures. To facilitate re-dispatch, typical methods are automatically provided with an extra *%_ parameter that captures extra named arguments. Because classes declared with is hidden don't participate in re-dispatch, their methods don't receive this extra parameter.
In role Metamodel::MultipleInheritance§
See primary documentation in context for method hides.
method hides($obj)
Returns a list of all hidden parent classes.