-
Notifications
You must be signed in to change notification settings - Fork 1.6k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
chore: use multipart_suggestions for manual_async_fn (#13788)
This addresses #13099 for the manual_async_fn test. changelog: [manual_async_fn]: Updated manual_async_fn to use multipart_suggestions where appropriate
- Loading branch information
Showing
4 changed files
with
166 additions
and
108 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,116 @@ | ||
#![warn(clippy::manual_async_fn)] | ||
#![allow(clippy::needless_pub_self, unused)] | ||
|
||
use std::future::Future; | ||
|
||
async fn fut() -> i32 { 42 } | ||
|
||
#[rustfmt::skip] | ||
async fn fut2() -> i32 { 42 } | ||
|
||
#[rustfmt::skip] | ||
async fn fut3() -> i32 { 42 } | ||
|
||
async fn empty_fut() {} | ||
|
||
#[rustfmt::skip] | ||
async fn empty_fut2() {} | ||
|
||
#[rustfmt::skip] | ||
async fn empty_fut3() {} | ||
|
||
async fn core_fut() -> i32 { 42 } | ||
|
||
// should be ignored | ||
fn has_other_stmts() -> impl core::future::Future<Output = i32> { | ||
let _ = 42; | ||
async move { 42 } | ||
} | ||
|
||
// should be ignored | ||
fn not_fut() -> i32 { | ||
42 | ||
} | ||
|
||
// should be ignored | ||
async fn already_async() -> impl Future<Output = i32> { | ||
async { 42 } | ||
} | ||
|
||
struct S; | ||
impl S { | ||
async fn inh_fut() -> i32 { | ||
// NOTE: this code is here just to check that the indentation is correct in the suggested fix | ||
let a = 42; | ||
let b = 21; | ||
if a < b { | ||
let c = 21; | ||
let d = 42; | ||
if c < d { | ||
let _ = 42; | ||
} | ||
} | ||
42 | ||
} | ||
|
||
// should be ignored | ||
fn not_fut(&self) -> i32 { | ||
42 | ||
} | ||
|
||
// should be ignored | ||
fn has_other_stmts() -> impl core::future::Future<Output = i32> { | ||
let _ = 42; | ||
async move { 42 } | ||
} | ||
|
||
// should be ignored | ||
async fn already_async(&self) -> impl Future<Output = i32> { | ||
async { 42 } | ||
} | ||
} | ||
|
||
// Tests related to lifetime capture | ||
|
||
async fn elided(_: &i32) -> i32 { 42 } | ||
|
||
// should be ignored | ||
fn elided_not_bound(_: &i32) -> impl Future<Output = i32> { | ||
async { 42 } | ||
} | ||
|
||
#[allow(clippy::needless_lifetimes)] | ||
async fn explicit<'a, 'b>(_: &'a i32, _: &'b i32) -> i32 { 42 } | ||
|
||
// should be ignored | ||
#[allow(clippy::needless_lifetimes)] | ||
fn explicit_not_bound<'a, 'b>(_: &'a i32, _: &'b i32) -> impl Future<Output = i32> { | ||
async { 42 } | ||
} | ||
|
||
// should be ignored | ||
mod issue_5765 { | ||
use std::future::Future; | ||
|
||
struct A; | ||
impl A { | ||
fn f(&self) -> impl Future<Output = ()> { | ||
async {} | ||
} | ||
} | ||
|
||
fn test() { | ||
let _future = { | ||
let a = A; | ||
a.f() | ||
}; | ||
} | ||
} | ||
|
||
pub async fn issue_10450() -> i32 { 42 } | ||
|
||
pub(crate) async fn issue_10450_2() -> i32 { 42 } | ||
|
||
pub(self) async fn issue_10450_3() -> i32 { 42 } | ||
|
||
fn main() {} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.