The Remove unnecessary async code assist should not be available inside trait implementations. This is because the async is required to conform to the trait interface, so the async is not "unnecessary".
Reproduce:
-
Paste the following code
trait Trait {
async fn foo();
}
impl Trait for () {
┃async fn foo() {
}
}
┃ denotes the cursor location.
-
Press alt+. to show code assists
rust-analyzer version: 0.3.1258-standalone
rustc version: 1.64.0 (a55dd71d5 2022-09-19)
relevant settings: