Rollup merge of #69620 - thekuom:doc/61137-add-long-error-code-e0719, r=davidtwco
doc(librustc_error_codes): add long error explanation for E0719 Reference issue #61137 - Updated error_codes.rs - Added E0719.md in error_codes - Updated necessary test .stderr files
This commit is contained in:
commit
9f3a192327
@ -395,6 +395,7 @@ E0714: include_str!("./error_codes/E0714.md"),
|
||||
E0715: include_str!("./error_codes/E0715.md"),
|
||||
E0716: include_str!("./error_codes/E0716.md"),
|
||||
E0718: include_str!("./error_codes/E0718.md"),
|
||||
E0719: include_str!("./error_codes/E0719.md"),
|
||||
E0720: include_str!("./error_codes/E0720.md"),
|
||||
E0723: include_str!("./error_codes/E0723.md"),
|
||||
E0725: include_str!("./error_codes/E0725.md"),
|
||||
@ -605,7 +606,6 @@ E0748: include_str!("./error_codes/E0748.md"),
|
||||
E0710, // an unknown tool name found in scoped lint
|
||||
E0711, // a feature has been declared with conflicting stability attributes
|
||||
E0717, // rustc_promotable without stability attribute
|
||||
E0719, // duplicate values for associated type binding
|
||||
// E0721, // `await` keyword
|
||||
E0722, // Malformed `#[optimize]` attribute
|
||||
E0724, // `#[ffi_returns_twice]` is only allowed in foreign functions
|
||||
|
35
src/librustc_error_codes/error_codes/E0719.md
Normal file
35
src/librustc_error_codes/error_codes/E0719.md
Normal file
@ -0,0 +1,35 @@
|
||||
The value for an associated type has already been specified.
|
||||
|
||||
Erroneous code example:
|
||||
|
||||
```compile_fail,E0719
|
||||
#![feature(associated_type_bounds)]
|
||||
|
||||
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:
|
||||
|
||||
```
|
||||
#![feature(associated_type_bounds)]
|
||||
|
||||
trait FooTrait {}
|
||||
trait BarTrait {}
|
||||
trait FooBarTrait: FooTrait + BarTrait {}
|
||||
|
||||
struct Foo<T: Iterator<Item: FooBarTrait>> { f: T }
|
||||
```
|
||||
|
||||
For more information about associated types, see [the book][bk-at]. For more
|
||||
information on associated type bounds, see [RFC 2289][rfc-2289].
|
||||
|
||||
[bk-at]: https://doc.rust-lang.org/book/ch19-03-advanced-traits.html#specifying-placeholder-types-in-trait-definitions-with-associated-types
|
||||
[rfc-2289]: https://rust-lang.github.io/rfcs/2289-associated-type-bounds.html
|
@ -728,3 +728,4 @@ LL | type TADyn3 = dyn Iterator<Item: 'static, Item: 'static>;
|
||||
|
||||
error: aborting due to 96 previous errors
|
||||
|
||||
For more information about this error, try `rustc --explain E0719`.
|
||||
|
@ -16,3 +16,4 @@ LL | fn test() -> Box<dyn Iterator<Item = (), Item = Unit>> {
|
||||
|
||||
error: aborting due to 2 previous errors
|
||||
|
||||
For more information about this error, try `rustc --explain E0719`.
|
||||
|
Loading…
x
Reference in New Issue
Block a user