Added long error description & modifed error_codes.rs

This commit is contained in:
Josh White 2020-02-05 06:28:31 -05:00 committed by Josh White
parent 442ae7f040
commit 4a1c6ce235
2 changed files with 23 additions and 1 deletions

View File

@ -353,6 +353,7 @@ E0631: include_str!("./error_codes/E0631.md"),
E0633: include_str!("./error_codes/E0633.md"),
E0635: include_str!("./error_codes/E0635.md"),
E0636: include_str!("./error_codes/E0636.md"),
E0637: include_str!("./error_codes/E0637.md"),
E0638: include_str!("./error_codes/E0638.md"),
E0639: include_str!("./error_codes/E0639.md"),
E0641: include_str!("./error_codes/E0641.md"),
@ -584,7 +585,6 @@ E0746: include_str!("./error_codes/E0746.md"),
E0632, // cannot provide explicit generic arguments when `impl Trait` is
// used in argument position
E0634, // type has conflicting packed representaton hints
E0637, // "'_" is not a valid lifetime bound
E0640, // infer outlives requirements
// E0645, // trait aliases not finished
E0657, // `impl Trait` can only capture lifetimes bound at the fn level

View File

@ -0,0 +1,22 @@
The underscore `_` character has been used as the identifier for a lifetime.
Erroneous code example:
```
fn some_function<'_>(x: &'_ str, y: &'_ str) -> &'_ str {
//Some code
}
```
Lifetimes are named with 'ident, where ident is the name of the
lifetime or loop. The `_` character, which represents the ignore pattern,
cannot be used because it is a reserved lifetime name.
To fix this, use a single lowercase letter as the
lifetime identifier, such as `'a`. For more information, see [The Rust Book](https://doc.rust-lang.org/stable/book/appendix-02-operators.html#non-operator-symbols).
Corrected code example:
```
fn some_function<'a>(x: &'a str, y: &'a str) -> &'a str {
//Some code
}
```