E0005

E0005#

未使用的泛型类型变量。

在某些情况下,使用带有未使用的泛型类型变量的类型将使类型检查器无法推断未使用变量的类型,从而导致 E0013。这可能导致难以理解的错误信息,甚至是意想不到的运行时行为。

错误示例#

///|
priv struct Foo[T] {
  bar : Int
}

///|
test {
  let bar : Foo[Int] = { bar: 42 }
  inspect(bar.bar, content="42")
}

建议#

  • 如果类型变量确实没有用,移除未使用的类型变量。

    ///|
    priv struct Foo {
      bar : Int
    }
    
  • 如果你希望保留类型变量,你可以使用 _ 来表示类型变量是有意未使用的。

    ///|
    priv struct Foo2[_] {
      bar2 : Int
    }