class X::Does::TypeObject is Exception {}
When you try to add one or more roles to a type object with does
after it has been composed, an error of type X::Does::TypeObject
is thrown:
Mu does Numeric; # Cannot use 'does' operator with a type object.
The correct way to apply roles to a type is at declaration time:
class GrassmannNumber does Numeric { ... }; role AlgebraDebugger does IO { ... }; grammar IntegralParser does AlgebraParser { ... };
Roles may only be runtime-mixed into defined object instances:
GrassmannNumber.new does AlgebraDebugger;
(This restriction may be worked around by using augment or supersede, or with dark Metamodel magics, but this will likely result in a significant performance penalty.)
Methods§
method type§
method type(X::Does::TypeObject:D: --> Mu:U)
Returns the type object into which the code tried to mix in a role.