diff options
| author | roife <roifewu@gmail.com> | 2023-12-11 00:53:44 +0800 |
|---|---|---|
| committer | roife <roifewu@gmail.com> | 2024-01-02 21:30:57 +0800 |
| commit | bc1a5774fd9fc1cbc2ffcb74d72e2894e2171d0b (patch) | |
| tree | 703a2cde3c036db43c1bdcfd1231998b81f866ff | |
| parent | 186553dab81c0b675cf41162c528c758e558d0ec (diff) | |
| download | rust-bc1a5774fd9fc1cbc2ffcb74d72e2894e2171d0b.tar.gz rust-bc1a5774fd9fc1cbc2ffcb74d72e2894e2171d0b.zip | |
fix: handle with type bounds in existing_params
| -rw-r--r-- | crates/ide-assists/src/utils/suggest_name.rs | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/crates/ide-assists/src/utils/suggest_name.rs b/crates/ide-assists/src/utils/suggest_name.rs index 8a698e4068a..455bbc0b681 100644 --- a/crates/ide-assists/src/utils/suggest_name.rs +++ b/crates/ide-assists/src/utils/suggest_name.rs @@ -70,8 +70,13 @@ pub(crate) fn for_unique_generic_name( name: &str, existing_params: &ast::GenericParamList, ) -> SmolStr { - let param_names = existing_params.generic_params().map(|param| param.to_string()).collect_vec(); - + let param_names = existing_params + .generic_params() + .map(|param| match param { + ast::GenericParam::TypeParam(t) => t.name().unwrap().to_string(), + p => p.to_string(), + }) + .collect_vec(); let mut name = name.to_string(); let base_len = name.len(); // 4*len bytes for base, and 2 bytes for 2 digits |
