diff options
| author | Niko Matsakis <niko@alum.mit.edu> | 2019-09-16 16:15:20 -0400 |
|---|---|---|
| committer | Niko Matsakis <niko@alum.mit.edu> | 2019-09-16 16:44:18 -0400 |
| commit | 00d159095adbb14c7dfaa6a77177be1b58600dc9 (patch) | |
| tree | 507c54763853fb5d9cc57c1c1bcbe50522b59ccc /src/libsyntax/parse/parser/expr.rs | |
| parent | 9ae1a664f7b947dadb9e97eea7703831d9cd5d31 (diff) | |
| download | rust-00d159095adbb14c7dfaa6a77177be1b58600dc9.tar.gz rust-00d159095adbb14c7dfaa6a77177be1b58600dc9.zip | |
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 }`.
Diffstat (limited to 'src/libsyntax/parse/parser/expr.rs')
0 files changed, 0 insertions, 0 deletions
