docs/test: add UI test and docs for E0476
This commit is contained in:
parent
f0bc76ac41
commit
9f876cc900
5 changed files with 67 additions and 2 deletions
|
@ -253,6 +253,7 @@ E0466: include_str!("./error_codes/E0466.md"),
|
|||
E0468: include_str!("./error_codes/E0468.md"),
|
||||
E0469: include_str!("./error_codes/E0469.md"),
|
||||
E0472: include_str!("./error_codes/E0472.md"),
|
||||
E0476: include_str!("./error_codes/E0476.md"),
|
||||
E0477: include_str!("./error_codes/E0477.md"),
|
||||
E0478: include_str!("./error_codes/E0478.md"),
|
||||
E0482: include_str!("./error_codes/E0482.md"),
|
||||
|
@ -611,7 +612,6 @@ E0793: include_str!("./error_codes/E0793.md"),
|
|||
// E0473, // dereference of reference outside its lifetime
|
||||
// E0474, // captured variable `..` does not outlive the enclosing closure
|
||||
// E0475, // index of slice outside its lifetime
|
||||
E0476, // lifetime of the source pointer does not outlive lifetime bound...
|
||||
// E0479, // the type `..` (provided as the value of a type parameter) is...
|
||||
// E0480, // lifetime of method receiver does not outlive the method call
|
||||
// E0481, // lifetime of function argument does not outlive the function call
|
||||
|
|
21
compiler/rustc_error_codes/src/error_codes/E0476.md
Normal file
21
compiler/rustc_error_codes/src/error_codes/E0476.md
Normal file
|
@ -0,0 +1,21 @@
|
|||
The coerced type does not outlive the value being coerced to.
|
||||
|
||||
Example of erroneous code:
|
||||
|
||||
```compile_fail,E0476
|
||||
#![feature(coerce_unsized)]
|
||||
#![feature(unsize)]
|
||||
|
||||
use std::marker::Unsize;
|
||||
use std::ops::CoerceUnsized;
|
||||
|
||||
// error: lifetime of the source pointer does not outlive lifetime bound of the
|
||||
// object type
|
||||
impl<'a, 'b, T, S> CoerceUnsized<&'a T> for &'b S where S: Unsize<T> {}
|
||||
```
|
||||
|
||||
During a coercion, the "source pointer" (the coerced type) did not outlive the
|
||||
"object type" (value being coerced to). In the above example, `'b` is not a
|
||||
subtype of `'a`. This error can currently only be encountered with the unstable
|
||||
`CoerceUnsized` trait which allows custom coercions of unsized types behind a
|
||||
smart pointer to be implemented.
|
Loading…
Add table
Add a link
Reference in a new issue