89 lines
2.1 KiB
Plaintext
89 lines
2.1 KiB
Plaintext
================================================================================
|
|
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))))
|