]> git.lizzy.rs Git - rust.git/commit
Auto merge of #51580 - cramertj:async-await, r=eddyb
authorbors <bors@rust-lang.org>
Sat, 23 Jun 2018 09:02:45 +0000 (09:02 +0000)
committerbors <bors@rust-lang.org>
Sat, 23 Jun 2018 09:02:45 +0000 (09:02 +0000)
commit56e8f29dbe89f2109cacc8eb5e92ea3de32eefb9
tree8630b3d600677d35ce9c956fbfe12923b57e302d
parent2ea922a96d676ff84cd78421d314e6aac305b5e9
parent30c17ccbffdbb88020e6ed42d89cc214fc3e6e5f
Auto merge of #51580 - cramertj:async-await, r=eddyb

async/await

This PR implements `async`/`await` syntax for `async fn` in Rust 2015 and `async` closures and `async` blocks in Rust 2018 (tracking issue: https://github.com/rust-lang/rust/issues/50547). Limitations: non-`move` async closures with arguments are currently not supported, nor are `async fn` with multiple different input lifetimes. These limitations are not fundamental and will be removed in the future, however I'd like to go ahead and get this PR merged so we can start experimenting with this in combination with futures 0.3.

Based on https://github.com/rust-lang/rust/pull/51414.
cc @petrochenkov for parsing changes.
r? @eddyb
src/librustc/middle/resolve_lifetime.rs
src/libsyntax/parse/mod.rs
src/libsyntax/parse/parser.rs