error: this function can be simplified using the `async fn` syntax
  --> $DIR/manual_async_fn.rs:7:1
   |
LL | fn fut() -> impl Future<Output = i32> {
   | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
   |
   = note: `-D clippy::manual-async-fn` implied by `-D warnings`
help: make the function `async` and return the output of the future directly
   |
LL | async fn fut() -> i32 {
   | ~~~~~~~~~~~~~~~~~~~~~
help: move the body of the async block to the enclosing function
   |
LL | fn fut() -> impl Future<Output = i32> { 42 }
   |                                       ~~~~~~

error: this function can be simplified using the `async fn` syntax
  --> $DIR/manual_async_fn.rs:12:1
   |
LL | fn fut2() ->impl Future<Output = i32> {
   | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
   |
help: make the function `async` and return the output of the future directly
   |
LL | async fn fut2() -> i32 {
   | ~~~~~~~~~~~~~~~~~~~~~~
help: move the body of the async block to the enclosing function
   |
LL | fn fut2() ->impl Future<Output = i32> { 42 }
   |                                       ~~~~~~

error: this function can be simplified using the `async fn` syntax
  --> $DIR/manual_async_fn.rs:17:1
   |
LL | fn fut3()-> impl Future<Output = i32> {
   | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
   |
help: make the function `async` and return the output of the future directly
   |
LL | async fn fut3() -> i32 {
   | ~~~~~~~~~~~~~~~~~~~~~~
help: move the body of the async block to the enclosing function
   |
LL | fn fut3()-> impl Future<Output = i32> { 42 }
   |                                       ~~~~~~

error: this function can be simplified using the `async fn` syntax
  --> $DIR/manual_async_fn.rs:21:1
   |
LL | fn empty_fut() -> impl Future<Output = ()> {
   | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
   |
help: make the function `async` and remove the return type
   |
LL | async fn empty_fut() {
   | ~~~~~~~~~~~~~~~~~~~~
help: move the body of the async block to the enclosing function
   |
LL | fn empty_fut() -> impl Future<Output = ()> {}
   |                                            ~~

error: this function can be simplified using the `async fn` syntax
  --> $DIR/manual_async_fn.rs:26:1
   |
LL | fn empty_fut2() ->impl Future<Output = ()> {
   | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
   |
help: make the function `async` and remove the return type
   |
LL | async fn empty_fut2() {
   | ~~~~~~~~~~~~~~~~~~~~~
help: move the body of the async block to the enclosing function
   |
LL | fn empty_fut2() ->impl Future<Output = ()> {}
   |                                            ~~

error: this function can be simplified using the `async fn` syntax
  --> $DIR/manual_async_fn.rs:31:1
   |
LL | fn empty_fut3()-> impl Future<Output = ()> {
   | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
   |
help: make the function `async` and remove the return type
   |
LL | async fn empty_fut3() {
   | ~~~~~~~~~~~~~~~~~~~~~
help: move the body of the async block to the enclosing function
   |
LL | fn empty_fut3()-> impl Future<Output = ()> {}
   |                                            ~~

error: this function can be simplified using the `async fn` syntax
  --> $DIR/manual_async_fn.rs:35:1
   |
LL | fn core_fut() -> impl core::future::Future<Output = i32> {
   | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
   |
help: make the function `async` and return the output of the future directly
   |
LL | async fn core_fut() -> i32 {
   | ~~~~~~~~~~~~~~~~~~~~~~~~~~
help: move the body of the async block to the enclosing function
   |
LL | fn core_fut() -> impl core::future::Future<Output = i32> { 42 }
   |                                                          ~~~~~~

error: this function can be simplified using the `async fn` syntax
  --> $DIR/manual_async_fn.rs:57:5
   |
LL |     fn inh_fut() -> impl Future<Output = i32> {
   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
   |
help: make the function `async` and return the output of the future directly
   |
LL |     async fn inh_fut() -> i32 {
   |     ~~~~~~~~~~~~~~~~~~~~~~~~~
help: move the body of the async block to the enclosing function
   |
LL ~     fn inh_fut() -> impl Future<Output = i32> {
LL +         // NOTE: this code is here just to check that the indentation is correct in the suggested fix
LL +         let a = 42;
LL +         let b = 21;
LL +         if a < b {
LL +             let c = 21;
LL +             let d = 42;
LL +             if c < d {
LL +                 let _ = 42;
LL +             }
LL +         }
LL +         42
LL +     }
   |

error: this function can be simplified using the `async fn` syntax
  --> $DIR/manual_async_fn.rs:92:1
   |
LL | fn elided(_: &i32) -> impl Future<Output = i32> + '_ {
   | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
   |
help: make the function `async` and return the output of the future directly
   |
LL | async fn elided(_: &i32) -> i32 {
   | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
help: move the body of the async block to the enclosing function
   |
LL | fn elided(_: &i32) -> impl Future<Output = i32> + '_ { 42 }
   |                                                      ~~~~~~

error: this function can be simplified using the `async fn` syntax
  --> $DIR/manual_async_fn.rs:101:1
   |
LL | fn explicit<'a, 'b>(_: &'a i32, _: &'b i32) -> impl Future<Output = i32> + 'a + 'b {
   | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
   |
help: make the function `async` and return the output of the future directly
   |
LL | async fn explicit<'a, 'b>(_: &'a i32, _: &'b i32) -> i32 {
   | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
help: move the body of the async block to the enclosing function
   |
LL | fn explicit<'a, 'b>(_: &'a i32, _: &'b i32) -> impl Future<Output = i32> + 'a + 'b { 42 }
   |                                                                                    ~~~~~~

error: this function can be simplified using the `async fn` syntax
  --> $DIR/manual_async_fn.rs:130:1
   |
LL | pub fn issue_10450() -> impl Future<Output = i32> {
   | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
   |
help: make the function `async` and return the output of the future directly
   |
LL | pub async fn issue_10450() -> i32 {
   | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
help: move the body of the async block to the enclosing function
   |
LL | pub fn issue_10450() -> impl Future<Output = i32> { 42 }
   |                                                   ~~~~~~

error: this function can be simplified using the `async fn` syntax
  --> $DIR/manual_async_fn.rs:134:1
   |
LL | pub(crate) fn issue_10450_2() -> impl Future<Output = i32> {
   | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
   |
help: make the function `async` and return the output of the future directly
   |
LL | pub(crate) async fn issue_10450_2() -> i32 {
   | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
help: move the body of the async block to the enclosing function
   |
LL | pub(crate) fn issue_10450_2() -> impl Future<Output = i32> { 42 }
   |                                                            ~~~~~~

error: this function can be simplified using the `async fn` syntax
  --> $DIR/manual_async_fn.rs:138:1
   |
LL | pub(self) fn issue_10450_3() -> impl Future<Output = i32> {
   | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
   |
help: make the function `async` and return the output of the future directly
   |
LL | pub(self) async fn issue_10450_3() -> i32 {
   | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
help: move the body of the async block to the enclosing function
   |
LL | pub(self) fn issue_10450_3() -> impl Future<Output = i32> { 42 }
   |                                                           ~~~~~~

error: aborting due to 13 previous errors

