diff options
| author | Laurențiu Nicola <lnicola@users.noreply.github.com> | 2025-09-11 05:08:00 +0000 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2025-09-11 05:08:00 +0000 |
| commit | 7f38c057dcb407f477bc69aa20166be76f0d33fe (patch) | |
| tree | 279f22627953682a0fbb514b487cf2269ba4eec7 /src/tools/rust-analyzer | |
| parent | 1800ec19311e02957fd2c316c0e15854f722dcf6 (diff) | |
| parent | 2d87bc3e6bfc9e6ccda01a5898980b1e0a706708 (diff) | |
| download | rust-7f38c057dcb407f477bc69aa20166be76f0d33fe.tar.gz rust-7f38c057dcb407f477bc69aa20166be76f0d33fe.zip | |
Merge pull request #20653 from A4-Tacks/gen-function-empty-gen-param
Fix empty generic param list for generate_function
Diffstat (limited to 'src/tools/rust-analyzer')
| -rw-r--r-- | src/tools/rust-analyzer/crates/ide-assists/src/handlers/generate_function.rs | 31 |
1 files changed, 30 insertions, 1 deletions
diff --git a/src/tools/rust-analyzer/crates/ide-assists/src/handlers/generate_function.rs b/src/tools/rust-analyzer/crates/ide-assists/src/handlers/generate_function.rs index 88ed6f9ce12..a9cf2c1bae1 100644 --- a/src/tools/rust-analyzer/crates/ide-assists/src/handlers/generate_function.rs +++ b/src/tools/rust-analyzer/crates/ide-assists/src/handlers/generate_function.rs @@ -364,11 +364,13 @@ impl FunctionBuilder { Visibility::Crate => Some(make::visibility_pub_crate()), Visibility::Pub => Some(make::visibility_pub()), }; + let type_params = + self.generic_param_list.filter(|list| list.generic_params().next().is_some()); let fn_def = make::fn_( None, visibility, self.fn_name, - self.generic_param_list, + type_params, self.where_clause, self.params, self.fn_body, @@ -2416,6 +2418,33 @@ impl Foo { } #[test] + fn create_method_with_unused_generics() { + check_assist( + generate_function, + r#" +struct Foo<S>(S); +impl<S> Foo<S> { + fn foo(&self) { + self.bar()$0; + } +} +"#, + r#" +struct Foo<S>(S); +impl<S> Foo<S> { + fn foo(&self) { + self.bar(); + } + + fn bar(&self) ${0:-> _} { + todo!() + } +} +"#, + ) + } + + #[test] fn create_function_with_async() { check_assist( generate_function, |
