================================================================================ Async function ================================================================================ async fn abc() {} async fn main() { let x = futures.await?; } -------------------------------------------------------------------------------- (source_file (function_item (function_modifiers) (identifier) (parameters) (block)) (function_item (function_modifiers) (identifier) (parameters) (block (let_declaration (identifier) (try_expression (await_expression (identifier))))))) ================================================================================ Await expression ================================================================================ futures.await; futures.await?; futures.await?.await?; futures.await?.function().await?; -------------------------------------------------------------------------------- (source_file (expression_statement (await_expression (identifier))) (expression_statement (try_expression (await_expression (identifier)))) (expression_statement (try_expression (await_expression (try_expression (await_expression (identifier)))))) (expression_statement (try_expression (await_expression (call_expression (field_expression (try_expression (await_expression (identifier))) (field_identifier)) (arguments)))))) ================================================================================ Async Block ================================================================================ async {} async { let x = 10; } async move {} -------------------------------------------------------------------------------- (source_file (expression_statement (async_block (block))) (expression_statement (async_block (block (let_declaration (identifier) (integer_literal))))) (expression_statement (async_block (block))))