E0003

E0003#

未使用的类型声明。

此类型未被代码的任何其他部分使用,这意味着它既没有被构造也没有被消费,并且由于可见性,其他类型也无法构造或消费它。类型声明默认为抽象类型,这意味着它对此包的用户是公开可见的,但他们无法构造或解析该类型。因此,仅当类型具有抽象或私有可见性,并且没有被此包的任何其他部分构造或消费时,才会显示此警告。

请注意,这个警告可能会揭示你代码中的其他错误。例如,如果包中有两个类型名称相似,你可能会错误地使用另一个类型。

错误示例#

///|
struct Foo {
  bar : Int
}

///|
pub fn f() -> Unit {
  struct Bar {
    foot : Int
  }

}

建议#

有几种方式可以修复这个警告:

  • 如果这个类型确实没有用,你可以移除类型的定义。

  • 如果这个类型不是局部的,并且是你模块的公开 API 的一部分,你可以添加 pubpub(all) 可见性关键字。

    ///|
    pub struct Foo {
      bar : Int
    }
    
  • 检查你是否以正确的名称引用该类型。

在某些情况下,私有且未使用的类型是相对少见的;因此,我们建议你如果没有使用这个类型,就将其移除。