about summary refs log tree commit diff
path: root/src/libsyntax_ext
diff options
context:
space:
mode:
authorbors <bors@rust-lang.org>2019-09-17 18:23:30 +0000
committerbors <bors@rust-lang.org>2019-09-17 18:23:30 +0000
commit7efe1c6e678a263b9464f2e7f06f552b4d4db5a5 (patch)
tree661b25cd2917b50d931ac4576fedd7da26a96ca0 /src/libsyntax_ext
parent9150f844e2624eb013ec78ca08c1d416e6644026 (diff)
parent2d8b10f63c394c99f2268de3132086bc72ee5a2b (diff)
downloadrust-7efe1c6e678a263b9464f2e7f06f552b4d4db5a5.tar.gz
rust-7efe1c6e678a263b9464f2e7f06f552b4d4db5a5.zip
Auto merge of #64525 - nikomatsakis:issue-64512-drop-order-tail-temp, r=davidtwco
adjust desugaring for async fn to correct drop order

Old desugaring, given a user function body `{ $stmts; $expr }`

```
{
    let $param_pattern0 = $raw_param0;
    ...
    let $param_patternN = $raw_paramN;
    $stmts;
    $expr
}
```

New desugaring:

```
{
    let $param_pattern0 = $raw_param0;
    ...
    let $param_patternN = $raw_paramN;
    drop-temps {
        $stmts;
        $expr
    }
}
```

The drop-temps is an internal bit of HIR that drops temporaries from the resulting expression, but it should be equivalent to `return { $stmts; $expr }`.

Fixes #64512
Fixes #64391
Diffstat (limited to 'src/libsyntax_ext')
0 files changed, 0 insertions, 0 deletions