about summary refs log tree commit diff
path: root/src/libsyntax/parse
diff options
context:
space:
mode:
authorNiko Matsakis <niko@alum.mit.edu>2019-09-16 16:15:20 -0400
committerNiko Matsakis <niko@alum.mit.edu>2019-09-16 16:44:18 -0400
commit00d159095adbb14c7dfaa6a77177be1b58600dc9 (patch)
tree507c54763853fb5d9cc57c1c1bcbe50522b59ccc /src/libsyntax/parse
parent9ae1a664f7b947dadb9e97eea7703831d9cd5d31 (diff)
downloadrust-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')
0 files changed, 0 insertions, 0 deletions