rust/src/libsyntax
bors 56e8f29dbe 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
2018-06-23 09:02:45 +00:00
..
diagnostics Add Ident::as_str helper 2018-05-26 15:20:23 +03:00
ext async await desugaring and tests 2018-06-21 22:36:36 -07:00
parse Auto merge of #51580 - cramertj:async-await, r=eddyb 2018-06-23 09:02:45 +00:00
print Update libsyntax test 2018-06-22 20:40:52 -07:00
util async await desugaring and tests 2018-06-21 22:36:36 -07:00
ast.rs async await desugaring and tests 2018-06-21 22:36:36 -07:00
attr.rs Fix HasAttrs support for GenericParam 2018-06-20 12:23:23 +01:00
build.rs rustc: Add some build scripts for librustc crates 2017-07-22 22:04:13 -07:00
Cargo.toml rustc_target: move in syntax::abi and flip dependency. 2018-04-26 17:49:16 +03:00
codemap.rs Satisfy tidy 2018-05-21 18:43:11 +02:00
config.rs Deny #[cfg] and #[cfg_attr] on generic parameters. 2018-06-02 05:11:33 +08:00
diagnostic_list.rs Update error code numbers 2018-06-19 17:33:14 -07:00
entry.rs Cleanup InternedString. 2016-11-21 09:00:56 +00:00
feature_gate.rs async await desugaring and tests 2018-06-21 22:36:36 -07:00
fold.rs async await desugaring and tests 2018-06-21 22:36:36 -07:00
json.rs Stabilize suggestion applicability field in json output 2018-05-21 10:48:12 -07:00
lib.rs Crate-ify and delete unused code in syntax::parse 2018-06-09 16:57:19 -06:00
ptr.rs Remove unused map_slice 2018-06-22 12:12:53 -07:00
README.md Replace many of the last references to readmes 2018-03-16 12:43:22 -05:00
show_span.rs use field init shorthand EVERYWHERE 2017-08-15 15:29:17 -07:00
std_inject.rs Add edition to expansion info 2018-05-17 23:13:08 +03:00
str.rs Inline char_at() and record_width. 2018-05-13 17:16:02 +10:00
test.rs async await desugaring and tests 2018-06-21 22:36:36 -07:00
test_snippet.rs Remove syntax and syntax_pos thread locals 2018-03-14 11:56:01 +01:00
tokenstream.rs Make Directory::path a Cow. 2018-05-18 22:20:33 +10:00
visit.rs async await desugaring and tests 2018-06-21 22:36:36 -07:00

The syntax crate contains those things concerned purely with syntax that is, the AST ("abstract syntax tree"), parser, pretty-printer, lexer, macro expander, and utilities for traversing ASTs.

For more information about how these things work in rustc, see the rustc guide: