error[E0267]: `break` inside of an `async` block --> $DIR/async-block-control-flow-static-semantics.rs:33:9 | LL | async { | ___________- LL | | break 0u8; | | ^^^^^^^^^ cannot `break` inside of an `async` block LL | | }; | |_____- enclosing `async` block error[E0267]: `break` inside of an `async` block --> $DIR/async-block-control-flow-static-semantics.rs:40:13 | LL | async { | _______________- LL | | break 0u8; | | ^^^^^^^^^ cannot `break` inside of an `async` block LL | | }; | |_________- enclosing `async` block error[E0308]: mismatched types --> $DIR/async-block-control-flow-static-semantics.rs:13:43 | LL | fn return_targets_async_block_not_fn() -> u8 { | --------------------------------- ^^ expected `u8`, found `()` | | | implicitly returns `()` as its body has no tail or `return` expression error[E0271]: type mismatch resolving `::Output == ()` --> $DIR/async-block-control-flow-static-semantics.rs:18:39 | LL | let _: &dyn Future = █ | ^^^^^^ expected `()`, found `u8` | = note: required for the cast to the object type `dyn std::future::Future` error[E0308]: mismatched types --> $DIR/async-block-control-flow-static-semantics.rs:22:58 | LL | async fn return_targets_async_block_not_async_fn() -> u8 { | __________________________________________________________^ LL | | LL | | let block = async { LL | | return 0u8; ... | LL | | LL | | } | |_^ expected `u8`, found `()` error[E0271]: type mismatch resolving `::Output == ()` --> $DIR/async-block-control-flow-static-semantics.rs:27:39 | LL | let _: &dyn Future = █ | ^^^^^^ expected `()`, found `u8` | = note: required for the cast to the object type `dyn std::future::Future` error[E0308]: mismatched types --> $DIR/async-block-control-flow-static-semantics.rs:48:44 | LL | fn rethrow_targets_async_block_not_fn() -> Result { | ---------------------------------- ^^^^^^^^^^^^^^^^^ expected enum `std::result::Result`, found `()` | | | implicitly returns `()` as its body has no tail or `return` expression | = note: expected enum `std::result::Result` found unit type `()` error[E0308]: mismatched types --> $DIR/async-block-control-flow-static-semantics.rs:57:50 | LL | fn rethrow_targets_async_block_not_async_fn() -> Result { | ---------------------------------------- ^^^^^^^^^^^^^^^^^ expected enum `std::result::Result`, found `()` | | | implicitly returns `()` as its body has no tail or `return` expression | = note: expected enum `std::result::Result` found unit type `()` error: aborting due to 8 previous errors Some errors have detailed explanations: E0267, E0271, E0308. For more information about an error, try `rustc --explain E0267`.