Skip to content

Latest commit

 

History

History
33 lines (23 loc) · 1.04 KB

File metadata and controls

33 lines (23 loc) · 1.04 KB

Note: this error code is no longer emitted by the compiler.

An associated type value was specified more than once.

Erroneous code example:

trait FooTrait {}
trait BarTrait {}

// error: associated type `Item` in trait `Iterator` is specified twice
struct Foo<T: Iterator<Item: FooTrait, Item: BarTrait>> { f: T }

Item in trait Iterator cannot be specified multiple times for struct Foo. To fix this, create a new trait that is a combination of the desired traits and specify the associated type with the new trait.

Corrected example:

trait FooTrait {}
trait BarTrait {}
trait FooBarTrait: FooTrait + BarTrait {}

struct Foo<T: Iterator<Item: FooBarTrait>> { f: T } // ok!

For more information about associated types, see the book. For more information on associated type bounds, see RFC 2289.