add extended information for E0562; impl Trait can only be a return type
This commit is contained in:
parent
29bce6e220
commit
43b9cb3c1d
@ -3938,6 +3938,46 @@ struct Simba {
|
||||
```
|
||||
"##,
|
||||
|
||||
E0562: r##"
|
||||
Abstract return types (written `impl Trait` for some trait `Trait`) are only
|
||||
allowed as function return types.
|
||||
|
||||
Erroneous code example:
|
||||
|
||||
```compile_fail,E0562
|
||||
#![feature(conservative_impl_trait)]
|
||||
|
||||
fn main() {
|
||||
let count_to_ten: impl Iterator<Item=usize> = 0..10;
|
||||
// error: `impl Trait` not allowed outside of function and inherent method
|
||||
// return types
|
||||
for i in count_to_ten {
|
||||
println!("{}", i);
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
Make sure `impl Trait` only appears in return-type position.
|
||||
|
||||
```
|
||||
#![feature(conservative_impl_trait)]
|
||||
|
||||
fn count_to_n(n: usize) -> impl Iterator<Item=usize> {
|
||||
0..n
|
||||
}
|
||||
|
||||
fn main() {
|
||||
for i in count_to_n(10) { // ok!
|
||||
println!("{}", i);
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
See [RFC 1522] for more details.
|
||||
|
||||
[RFC 1522]: https://github.com/rust-lang/rfcs/blob/master/text/1522-conservative-impl-trait.md
|
||||
"##,
|
||||
|
||||
E0570: r##"
|
||||
The requested ABI is unsupported by the current target.
|
||||
|
||||
@ -4287,8 +4327,6 @@ fn i_am_a_function() {}
|
||||
E0436, // functional record update requires a struct
|
||||
E0521, // redundant default implementations of trait
|
||||
E0533, // `{}` does not name a unit variant, unit struct or a constant
|
||||
E0562, // `impl Trait` not allowed outside of function
|
||||
// and inherent method return types
|
||||
E0563, // cannot determine a type for this `impl Trait`: {}
|
||||
E0564, // only named lifetimes are allowed in `impl Trait`,
|
||||
// but `{}` was found in the type `{}`
|
||||
|
Loading…
Reference in New Issue
Block a user