E0003#
未使用的类型声明。
此类型未被代码的任何其他部分使用,这意味着它既没有被构造也没有被消费,并且由于可见性,其他类型也无法构造或消费它。类型声明默认为抽象类型,这意味着它对此包的用户是公开可见的,但他们无法构造或解析该类型。因此,仅当类型具有抽象或私有可见性,并且没有被此包的任何其他部分构造或消费时,才会显示此警告。
请注意,这个警告可能会揭示你代码中的其他错误。例如,如果包中有两个类型名称相似,你可能会错误地使用另一个类型。
错误示例#
///|
struct Foo {
bar : Int
}
///|
pub fn f() -> Unit {
struct Bar {
foot : Int
}
}
建议#
有几种方式可以修复这个警告:
如果这个类型确实没有用,你可以移除类型的定义。
如果这个类型不是局部的,并且是你模块的公开 API 的一部分,你可以添加
pub
或pub(all)
可见性关键字。///| pub struct Foo { bar : Int }
检查你是否以正确的名称引用该类型。
在某些情况下,私有且未使用的类型是相对少见的;因此,我们建议你如果没有使用这个类型,就将其移除。