Open
Description
openedon Jul 11, 2020
struct Struct { }
impl Struct {
async fn async_fn(self: &Struct, f: &u32) -> &u32 {
f
}
fn sync_fn(self: &Struct, f: &u32) -> &u32 {
f
}
}
Output (playground)
Compiling playground v0.0.1 (/playground)
error[E0623]: lifetime mismatch
--> src/main.rs:5:9
|
4 | async fn async_fn(self: &Struct, f: &u32) -> &u32 {
| ------- ----
| |
| this parameter and the return type are declared with different lifetimes...
5 | f
| ^ ...but data from `f` is returned here
error[E0623]: lifetime mismatch
--> src/main.rs:9:9
|
8 | fn sync_fn(self: &Struct, f: &u32) -> &u32 {
| ---- ----
| |
| this parameter and the return type are declared with different lifetimes...
9 | f
| ^ ...but data from `f` is returned here
error: aborting due to 2 previous errors
For more information about this error, try `rustc --explain E0623`.
error: could not compile `playground`.
To learn more, run the command again with --verbose.
The error in sync_fn
is correct, but the one for async_fn
incorrectly claims the return type lifetime is different from self
's lifetime, when they are in fact the same per the elision rules.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Metadata
Assignees
Labels
Area: Async & AwaitArea: Async & AwaitArea: Messages for errors, warnings, and lintsArea: Messages for errors, warnings, and lintsAsync-await issues that are part of the "polish" areaAsync-await issues that are part of the "polish" areaAsync-await issues that have been triaged during a working group meeting.Async-await issues that have been triaged during a working group meeting.Category: This is a bug.Category: This is a bug.Bugs fixed, but only when NLL is enabled.Bugs fixed, but only when NLL is enabled.Relevant to the compiler team, which will review and decide on the PR/issue.Relevant to the compiler team, which will review and decide on the PR/issue.
Type
Projects
Status
On deck