diff options
| author | Jeroen Vannevel <jer_vannevel@outlook.com> | 2022-01-07 01:02:16 +0000 |
|---|---|---|
| committer | Jeroen Vannevel <jer_vannevel@outlook.com> | 2022-01-07 01:02:16 +0000 |
| commit | b6201051b2975ece55f000e2b428e69dc35b7d63 (patch) | |
| tree | 3bd31da4be871a40240844731d40c17cb31a3df4 | |
| parent | 2fb6f5e46a5f53a78c2f750dd3c8e79dd418c4c9 (diff) | |
| download | rust-b6201051b2975ece55f000e2b428e69dc35b7d63.tar.gz rust-b6201051b2975ece55f000e2b428e69dc35b7d63.zip | |
Count the type parameters only
| -rw-r--r-- | crates/ide_assists/src/handlers/add_turbo_fish.rs | 27 |
1 files changed, 26 insertions, 1 deletions
diff --git a/crates/ide_assists/src/handlers/add_turbo_fish.rs b/crates/ide_assists/src/handlers/add_turbo_fish.rs index 2872edc9e10..95182d6edef 100644 --- a/crates/ide_assists/src/handlers/add_turbo_fish.rs +++ b/crates/ide_assists/src/handlers/add_turbo_fish.rs @@ -77,7 +77,13 @@ pub(crate) fn add_turbo_fish(acc: &mut Assists, ctx: &AssistContext) -> Option<( } } - let number_of_arguments = generics.len(); + let number_of_arguments = generics + .iter() + .filter(|param| match param { + hir::GenericParam::TypeParam(_) => true, + _ => false, + }) + .count(); let fish_head = std::iter::repeat("_").take(number_of_arguments).collect::<Vec<_>>().join(","); acc.add( @@ -339,4 +345,23 @@ fn main() { "Add `: _` before assignment operator", ); } + + #[test] + fn add_turbo_fish_function_lifetime_parameter() { + check_assist( + add_turbo_fish, + r#" +fn make<'a, T, A>(t: T, a: A) {} +fn main() { + make$0(5, 2); +} +"#, + r#" +fn make<'a, T, A>(t: T, a: A) {} +fn main() { + make::<${0:_,_}>(5, 2); +} +"#, + ); + } } |
