diff options
| author | bors <bors@rust-lang.org> | 2020-02-17 06:44:35 +0000 |
|---|---|---|
| committer | bors <bors@rust-lang.org> | 2020-02-17 06:44:35 +0000 |
| commit | 75b98fbe77d472d85d1691bae5b25e7eefb3609c (patch) | |
| tree | a4abaff4b39aed152126339809782e299df467c0 /src/librustc_error_codes/error_codes | |
| parent | 3c4590facc2c48f2ca42e074a1902c2d1f162a2f (diff) | |
| parent | cc497c4c84be72d0c4a06ef1b202faf266b0843a (diff) | |
| download | rust-75b98fbe77d472d85d1691bae5b25e7eefb3609c.tar.gz rust-75b98fbe77d472d85d1691bae5b25e7eefb3609c.zip | |
Auto merge of #69226 - JohnTitor:rollup-syn03oj, r=JohnTitor
Rollup of 6 pull requests Successful merges: - #68495 (Updating str.chars docs to mention crates.io.) - #68701 (Improve #Safety of various methods in core::ptr) - #69158 (Don't print block exit state in dataflow graphviz if unchanged) - #69179 (Rename `FunctionRetTy` to `FnRetTy`) - #69186 ([tiny] parser: `macro_rules` is a weak keyword) - #69188 (Clean up E0309 explanation) Failed merges: r? @ghost
Diffstat (limited to 'src/librustc_error_codes/error_codes')
| -rw-r--r-- | src/librustc_error_codes/error_codes/E0309.md | 22 |
1 files changed, 13 insertions, 9 deletions
diff --git a/src/librustc_error_codes/error_codes/E0309.md b/src/librustc_error_codes/error_codes/E0309.md index 73ce7407476..e719ee590ab 100644 --- a/src/librustc_error_codes/error_codes/E0309.md +++ b/src/librustc_error_codes/error_codes/E0309.md @@ -1,9 +1,7 @@ -The type definition contains some field whose type -requires an outlives annotation. Outlives annotations -(e.g., `T: 'a`) are used to guarantee that all the data in T is valid -for at least the lifetime `'a`. This scenario most commonly -arises when the type contains an associated type reference -like `<T as SomeTrait<'a>>::Output`, as shown in this example: +A parameter type is missing an explicit lifetime bound and may not live long +enough. + +Erroneous code example: ```compile_fail,E0309 // This won't compile because the applicable impl of @@ -25,9 +23,15 @@ where } ``` -Here, the where clause `T: 'a` that appears on the impl is not known to be -satisfied on the struct. To make this example compile, you have to add -a where-clause like `T: 'a` to the struct definition: +The type definition contains some field whose type requires an outlives +annotation. Outlives annotations (e.g., `T: 'a`) are used to guarantee that all +the data in T is valid for at least the lifetime `'a`. This scenario most +commonly arises when the type contains an associated type reference like +`<T as SomeTrait<'a>>::Output`, as shown in the previous code. + +There, the where clause `T: 'a` that appears on the impl is not known to be +satisfied on the struct. To make this example compile, you have to add a +where-clause like `T: 'a` to the struct definition: ``` struct Foo<'a, T> |
