diff options
| author | Lev Iskandarov <iskandarov11@inbox.ru> | 2024-04-20 21:04:53 +0300 |
|---|---|---|
| committer | Lev Iskandarov <iskandarov11@inbox.ru> | 2024-04-20 21:04:53 +0300 |
| commit | 846f8046b0ac332620e72d7227c01676356854d2 (patch) | |
| tree | 4bbce257c7466dc575dcb093e7d4a440c601256c | |
| parent | 570c725f698cffb16a0444e7b58ec872ee6cb607 (diff) | |
| download | rust-846f8046b0ac332620e72d7227c01676356854d2.tar.gz rust-846f8046b0ac332620e72d7227c01676356854d2.zip | |
add test with multiple names
| -rw-r--r-- | src/tools/rust-analyzer/crates/ide-diagnostics/src/handlers/json_is_not_rust.rs | 38 |
1 files changed, 37 insertions, 1 deletions
diff --git a/src/tools/rust-analyzer/crates/ide-diagnostics/src/handlers/json_is_not_rust.rs b/src/tools/rust-analyzer/crates/ide-diagnostics/src/handlers/json_is_not_rust.rs index 659af270c6d..b3dde977b1c 100644 --- a/src/tools/rust-analyzer/crates/ide-diagnostics/src/handlers/json_is_not_rust.rs +++ b/src/tools/rust-analyzer/crates/ide-diagnostics/src/handlers/json_is_not_rust.rs @@ -30,7 +30,8 @@ struct State { impl State { fn generate_new_name(&mut self, name: &str) -> ast::Name { let name = stdx::to_camel_case(name); - let count = if let Some(count) = self.names.get(&name) { + let count = if let Some(count) = self.names.get_mut(&name) { + *count += 1; *count } else { self.names.insert(name.clone(), 1); @@ -258,6 +259,41 @@ mod tests { } #[test] + fn naming() { + check_fix( + r#" + {$0 + "user": { + "address": { + "street": "Main St", + "house": 3 + }, + "email": "example@example.com" + }, + "another_user": { + "user": { + "address": { + "street": "Main St", + "house": 3 + }, + "email": "example@example.com" + } + } + } + "#, + r#" + struct Address1{ house: i64, street: String } + struct User1{ address: Address1, email: String } + struct AnotherUser1{ user: User1 } + struct Address2{ house: i64, street: String } + struct User2{ address: Address2, email: String } + struct Root1{ another_user: AnotherUser1, user: User2 } + + "#, + ); + } + + #[test] fn arrays() { check_fix( r#" |
