Skip to content

Clean up E0310 explanation #69233

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 1 commit into from
Feb 18, 2020
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
13 changes: 9 additions & 4 deletions src/librustc_error_codes/error_codes/E0310.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
Types in type definitions have lifetimes associated with them that represent
how long the data stored within them is guaranteed to be live. This lifetime
must be as long as the data needs to be alive, and missing the constraint that
denotes this will cause this error.
A parameter type is missing a lifetime constraint or has a lifetime that
does not live long enough.

Erroneous code example:

```compile_fail,E0310
// This won't compile because T is not constrained to the static lifetime
Expand All @@ -11,6 +11,11 @@ struct Foo<T> {
}
```

Type parameters in type definitions have lifetimes associated with them that
represent how long the data stored within them is guaranteed to live. This
lifetime must be as long as the data needs to be alive, and missing the
constraint that denotes this will cause this error.

This will compile, because it has the constraint on the type parameter:

```
Expand Down