error[E0308]: mismatched types
 --> tests/fail/macros_type_mismatch.rs:5:5
  |
4 | async fn missing_semicolon_or_return_type() {
  |                                             - help: a return type might be missing here: `-> _`
5 |     Ok(())
  |     ^^^^^^ expected `()`, found `Result<(), _>`
  |
  = note: expected unit type `()`
                  found enum `Result<(), _>`

error[E0308]: mismatched types
  --> tests/fail/macros_type_mismatch.rs:10:5
   |
9  | async fn missing_return_type() {
   |                                - help: a return type might be missing here: `-> _`
10 |     return Ok(());
   |     ^^^^^^^^^^^^^^ expected `()`, found `Result<(), _>`
   |
   = note: expected unit type `()`
                   found enum `Result<(), _>`

error[E0308]: mismatched types
  --> tests/fail/macros_type_mismatch.rs:23:5
   |
14 | async fn extra_semicolon() -> Result<(), ()> {
   |                               -------------- expected `Result<(), ()>` because of return type
...
23 |     Ok(());
   |     ^^^^^^^ expected `Result<(), ()>`, found `()`
   |
   = note:   expected enum `Result<(), ()>`
           found unit type `()`
help: try adding an expression at the end of the block
   |
23 ~     Ok(());;
24 +     Ok(())
   |

error[E0308]: mismatched types
  --> tests/fail/macros_type_mismatch.rs:32:5
   |
30 | async fn issue_4635() {
   |                       - help: try adding a return type: `-> i32`
31 |     return 1;
32 |     ;
   |     ^ expected `()`, found integer
