Skip to content

Commit b620105

Browse files
committed
Count the type parameters only
1 parent 2fb6f5e commit b620105

File tree

1 file changed

+26
-1
lines changed

1 file changed

+26
-1
lines changed

crates/ide_assists/src/handlers/add_turbo_fish.rs

Lines changed: 26 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -77,7 +77,13 @@ pub(crate) fn add_turbo_fish(acc: &mut Assists, ctx: &AssistContext) -> Option<(
7777
}
7878
}
7979

80-
let number_of_arguments = generics.len();
80+
let number_of_arguments = generics
81+
.iter()
82+
.filter(|param| match param {
83+
hir::GenericParam::TypeParam(_) => true,
84+
_ => false,
85+
})
86+
.count();
8187
let fish_head = std::iter::repeat("_").take(number_of_arguments).collect::<Vec<_>>().join(",");
8288

8389
acc.add(
@@ -339,4 +345,23 @@ fn main() {
339345
"Add `: _` before assignment operator",
340346
);
341347
}
348+
349+
#[test]
350+
fn add_turbo_fish_function_lifetime_parameter() {
351+
check_assist(
352+
add_turbo_fish,
353+
r#"
354+
fn make<'a, T, A>(t: T, a: A) {}
355+
fn main() {
356+
make$0(5, 2);
357+
}
358+
"#,
359+
r#"
360+
fn make<'a, T, A>(t: T, a: A) {}
361+
fn main() {
362+
make::<${0:_,_}>(5, 2);
363+
}
364+
"#,
365+
);
366+
}
342367
}

0 commit comments

Comments
 (0)