diff options
| author | Mazdak Farrokhzad <twingoow@gmail.com> | 2019-08-14 04:18:48 +0200 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2019-08-14 04:18:48 +0200 |
| commit | 4134241bcf79a77c724158cc388a746499c5fa06 (patch) | |
| tree | 5b37ae4e4c011e52ae2e483ced4f0b5b69916f9c /src/libsyntax/parse/parser | |
| parent | 0098d0c514208122ca63e652b5614da01fe210f1 (diff) | |
| parent | 18d69c8ebe7b313d574014e6585680f78bd2e157 (diff) | |
| download | rust-4134241bcf79a77c724158cc388a746499c5fa06.tar.gz rust-4134241bcf79a77c724158cc388a746499c5fa06.zip | |
Rollup merge of #63499 - nikomatsakis:issuee-63388-async-fn-elision-self-mut-self, r=cramertj
handle elision in async fn correctly
We now always make fresh lifetimne parameters for all elided
lifetimes, whether they are in the inputs or outputs. But then
we generate `'_` in the case of elided lifetimes from the outputs.
Example:
```rust
async fn foo<'a>(x: &'a u32) -> &u32 { .. }
```
becomes
```rust
type Foo<'a, 'b> = impl Future<Output = &'b u32>;
fn foo<'a>(x: &'a u32) -> Foo<'a, '_>
```
Fixes #63388
Diffstat (limited to 'src/libsyntax/parse/parser')
0 files changed, 0 insertions, 0 deletions
