E4046#
一个公开的定义不能依赖私有实体。
错误示例:#
priv trait I { m(Self) }
pub impl I for Int with m(self) {}
在上述例子中,试图为类型 Int
实现一个私有特征 I
,但实现本身是公开的,这是不允许的。在第 2 行报错:
A public definition cannot depend on private trait
建议#
调整特征或实现的可见性以互相匹配:
trait I { m(Self) -> Unit }
pub impl I for Int with m(self) {}
或:
priv trait I { m(Self) -> Unit }
impl I for Int with m(self) {}