| The associated type used was not defined in the trait. |
| |
| Erroneous code example: |
| |
| ```compile_fail,E0220 |
| trait T1 { |
| type Bar; |
| } |
| |
| type Foo = T1<F=i32>; // error: associated type `F` not found for `T1` |
| |
| // or: |
| |
| trait T2 { |
| type Bar; |
| |
| // error: Baz is used but not declared |
| fn return_bool(&self, _: &Self::Bar, _: &Self::Baz) -> bool; |
| } |
| ``` |
| |
| Make sure that you have defined the associated type in the trait body. |
| Also, verify that you used the right trait or you didn't misspell the |
| associated type name. Example: |
| |
| ``` |
| trait T1 { |
| type Bar; |
| } |
| |
| type Foo = T1<Bar=i32>; // ok! |
| |
| // or: |
| |
| trait T2 { |
| type Bar; |
| type Baz; // we declare `Baz` in our trait. |
| |
| // and now we can use it here: |
| fn return_bool(&self, _: &Self::Bar, _: &Self::Baz) -> bool; |
| } |
| ``` |