bors e8403a892b Auto merge of #11200 - y21:issue9695, r=Jarcho
[`unused_async`]: don't lint if paths reference async fn without immediate call

Fixes #9695
Fixes #9359

Clippy shouldn't lint unused `async` if there are paths referencing them if that path isn't the receiver of a function call, because that means that the function might be passed to some other function:
```rs
async fn f() {} // No await statements, so unused at this point

fn requires_fn_future<F: Future<Output = ()>>(_: fn() -> F) {}
requires_fn_future(f); // `f`'s asyncness is actually not unused.
```
(This isn't limited to just passing the function as a parameter to another function, it could also first be stored in a variable and later passed to another function as an argument)

This requires delaying the linting until post-crate and collecting path references to local async functions along the way.

changelog: [`unused_async`]: don't lint if paths reference async fn that require asyncness
2023-07-22 20:40:48 +00:00
..
2023-07-19 03:26:15 -05:00
2023-07-19 03:26:15 -05:00
2023-07-19 03:26:15 -05:00
2023-07-22 06:28:05 -05:00
2023-07-21 18:14:03 -07:00
2023-07-22 06:28:05 -05:00
2023-07-22 06:28:05 -05:00
2023-07-22 06:28:05 -05:00
2023-07-22 06:28:05 -05:00
2023-07-22 06:28:05 -05:00
2023-07-21 18:14:03 -07:00
2023-07-21 18:14:03 -07:00
2023-07-21 18:14:03 -07:00