Added proper explanation of ErrorCode-E0688
This commit is contained in:
parent
20fc02f836
commit
e3ae4c7345
3 changed files with 38 additions and 1 deletions
|
@ -380,6 +380,7 @@ E0668: include_str!("./error_codes/E0668.md"),
|
||||||
E0669: include_str!("./error_codes/E0669.md"),
|
E0669: include_str!("./error_codes/E0669.md"),
|
||||||
E0670: include_str!("./error_codes/E0670.md"),
|
E0670: include_str!("./error_codes/E0670.md"),
|
||||||
E0671: include_str!("./error_codes/E0671.md"),
|
E0671: include_str!("./error_codes/E0671.md"),
|
||||||
|
E0688: include_str!("./error_codes/E0688.md"),
|
||||||
E0689: include_str!("./error_codes/E0689.md"),
|
E0689: include_str!("./error_codes/E0689.md"),
|
||||||
E0690: include_str!("./error_codes/E0690.md"),
|
E0690: include_str!("./error_codes/E0690.md"),
|
||||||
E0691: include_str!("./error_codes/E0691.md"),
|
E0691: include_str!("./error_codes/E0691.md"),
|
||||||
|
@ -600,7 +601,6 @@ E0751: include_str!("./error_codes/E0751.md"),
|
||||||
// E0645, // trait aliases not finished
|
// E0645, // trait aliases not finished
|
||||||
E0667, // `impl Trait` in projections
|
E0667, // `impl Trait` in projections
|
||||||
E0687, // in-band lifetimes cannot be used in `fn`/`Fn` syntax
|
E0687, // in-band lifetimes cannot be used in `fn`/`Fn` syntax
|
||||||
E0688, // in-band lifetimes cannot be mixed with explicit lifetime binders
|
|
||||||
// E0694, // an unknown tool name found in scoped attributes
|
// E0694, // an unknown tool name found in scoped attributes
|
||||||
E0696, // `continue` pointing to a labeled block
|
E0696, // `continue` pointing to a labeled block
|
||||||
// E0702, // replaced with a generic attribute input check
|
// E0702, // replaced with a generic attribute input check
|
||||||
|
|
36
src/librustc_error_codes/error_codes/E0688.md
Normal file
36
src/librustc_error_codes/error_codes/E0688.md
Normal file
|
@ -0,0 +1,36 @@
|
||||||
|
In-band lifetimes were mixed with explicit lifetime binders.
|
||||||
|
|
||||||
|
Erroneous code example:
|
||||||
|
|
||||||
|
```compile_fail,E0688
|
||||||
|
#![feature(in_band_lifetimes)]
|
||||||
|
|
||||||
|
fn foo<'a>(x: &'a u32, y: &'b u32) {} // error!
|
||||||
|
|
||||||
|
struct Foo<'a> { x: &'a u32 }
|
||||||
|
|
||||||
|
impl Foo<'a> {
|
||||||
|
fn bar<'b>(x: &'a u32, y: &'b u32, z: &'c u32) {} // error!
|
||||||
|
}
|
||||||
|
|
||||||
|
impl<'b> Foo<'a> { // error!
|
||||||
|
fn baz() {}
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
In-band lifetimes cannot be mixed with explicit lifetime binders.
|
||||||
|
For example:
|
||||||
|
|
||||||
|
```
|
||||||
|
fn foo<'a, 'b>(x: &'a u32, y: &'b u32) {} // ok!
|
||||||
|
|
||||||
|
struct Foo<'a> { x: &'a u32 }
|
||||||
|
|
||||||
|
impl<'a> Foo<'a> {
|
||||||
|
fn bar<'b,'c>(x: &'a u32, y: &'b u32, z: &'c u32) {} // ok!
|
||||||
|
}
|
||||||
|
|
||||||
|
impl<'a> Foo<'a> { // ok!
|
||||||
|
fn baz() {}
|
||||||
|
}
|
||||||
|
```
|
|
@ -24,3 +24,4 @@ LL | impl<'b> Foo<'a> {
|
||||||
|
|
||||||
error: aborting due to 3 previous errors
|
error: aborting due to 3 previous errors
|
||||||
|
|
||||||
|
For more information about this error, try `rustc --explain E0688`.
|
Loading…
Add table
Add a link
Reference in a new issue