class X::Does::TypeObject is Exception {}

当您尝试使用 does 将一个或多个角色添加到类型对象(在该对象已被组合之后),将抛出类型为 X::Does::TypeObject 的错误

Mu does Numeric;    # Cannot use 'does' operator with a type object. 

向类型应用角色的正确方法是在声明时

class GrassmannNumber does Numeric { ... };
role AlgebraDebugger does IO { ... };
grammar IntegralParser does AlgebraParser { ... };

角色只能在运行时混合到已定义的对象实例中

GrassmannNumber.new does AlgebraDebugger;

(可以通过使用 augment 或 supersede 或使用黑暗元模型魔术来解决此限制,但这可能会导致严重的性能损失。)

方法§

方法类型§

method type(X::Does::TypeObject:D: --> Mu:U)

返回代码尝试混合角色的类型对象。