E4011

E4011#

不允许在特性默认实现中使用类型参数。

错误示例:#

pub(open) trait Stringer {
  stringify(Self) -> String
}

impl[T] Stringer with stringify(_self) { "hey" }

在上述例子中,在 Stringer 特性的默认实现中使用了类型参数 T,这是不允许的。

建议#

从默认实现中移除类型参数:

pub(open) trait Stringer {
  stringify(Self) -> String
}

impl Stringer with stringify(_self) { "hey" }