Unnamed repository; edit this file 'description' to name the repository.
-rw-r--r--crates/ide-assists/src/handlers/generate_fn_type_alias.rs32
1 files changed, 32 insertions, 0 deletions
diff --git a/crates/ide-assists/src/handlers/generate_fn_type_alias.rs b/crates/ide-assists/src/handlers/generate_fn_type_alias.rs
index 0b7eca2290..7fd94b4bed 100644
--- a/crates/ide-assists/src/handlers/generate_fn_type_alias.rs
+++ b/crates/ide-assists/src/handlers/generate_fn_type_alias.rs
@@ -270,6 +270,22 @@ fn foo<A: Trait, B: Trait>(a: A, b: B) -> i32 { return 42; }
}
#[test]
+ fn generate_fn_alias_unnamed_complex_types() {
+ check_assist_by_label(
+ generate_fn_type_alias,
+ r#"
+fn fo$0o(x: Vec<i32>) {}
+"#,
+ r#"
+type ${0:FooFn} = fn(Vec<i32>);
+
+fn foo(x: Vec<i32>) {}
+"#,
+ ParamStyle::Unnamed.label(),
+ );
+ }
+
+ #[test]
fn generate_fn_alias_unnamed_self() {
check_assist_by_label(
generate_fn_type_alias,
@@ -406,6 +422,22 @@ fn foo<A: Trait, B: Trait>(a: A, b: B) -> i32 { return 42; }
}
#[test]
+ fn generate_fn_alias_named_complex_types() {
+ check_assist_by_label(
+ generate_fn_type_alias,
+ r#"
+fn fo$0o(x: Vec<i32>) {}
+"#,
+ r#"
+type ${0:FooFn} = fn(x: Vec<i32>);
+
+fn foo(x: Vec<i32>) {}
+"#,
+ ParamStyle::Named.label(),
+ );
+ }
+
+ #[test]
fn generate_fn_alias_named_self() {
check_assist_by_label(
generate_fn_type_alias,