diff options
| author | Guillaume Gomez <guillaume1.gomez@gmail.com> | 2020-02-15 16:41:21 +0100 |
|---|---|---|
| committer | Guillaume Gomez <guillaume1.gomez@gmail.com> | 2020-02-15 16:41:21 +0100 |
| commit | cadf9efad123a62472cad45f22569747cc599256 (patch) | |
| tree | d16824cb803f8f8335e93fa3ab2963c2a73ff04b | |
| parent | dbef35309d10bed2f09cd55b3e9ea980a58c62aa (diff) | |
| download | rust-cadf9efad123a62472cad45f22569747cc599256.tar.gz rust-cadf9efad123a62472cad45f22569747cc599256.zip | |
Clean up E0309 explanation
| -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> |
