diff options
author | Aleksey Kladov <[email protected]> | 2021-01-19 22:56:11 +0000 |
---|---|---|
committer | Aleksey Kladov <[email protected]> | 2021-01-19 22:56:11 +0000 |
commit | 46b4f89c920c314caf1a8af2abdb09732d100d67 (patch) | |
tree | 1f01586d15be6fbcbcb6a40194ab6f1f723a36b7 /crates/ssr | |
parent | 63f509f4924e7448b9131514bbdd7a4da5292cd1 (diff) |
.
Diffstat (limited to 'crates/ssr')
-rw-r--r-- | crates/ssr/src/matching.rs | 13 | ||||
-rw-r--r-- | crates/ssr/src/replacing.rs | 2 | ||||
-rw-r--r-- | crates/ssr/src/resolving.rs | 2 |
3 files changed, 9 insertions, 8 deletions
diff --git a/crates/ssr/src/matching.rs b/crates/ssr/src/matching.rs index 42d313f91..df013bae9 100644 --- a/crates/ssr/src/matching.rs +++ b/crates/ssr/src/matching.rs | |||
@@ -10,8 +10,11 @@ use hir::Semantics; | |||
10 | use ide_db::base_db::FileRange; | 10 | use ide_db::base_db::FileRange; |
11 | use rustc_hash::FxHashMap; | 11 | use rustc_hash::FxHashMap; |
12 | use std::{cell::Cell, iter::Peekable}; | 12 | use std::{cell::Cell, iter::Peekable}; |
13 | use syntax::ast::{AstNode, AstToken}; | ||
14 | use syntax::{ast, SyntaxElement, SyntaxElementChildren, SyntaxKind, SyntaxNode, SyntaxToken}; | 13 | use syntax::{ast, SyntaxElement, SyntaxElementChildren, SyntaxKind, SyntaxNode, SyntaxToken}; |
14 | use syntax::{ | ||
15 | ast::{AstNode, AstToken}, | ||
16 | SmolStr, | ||
17 | }; | ||
15 | use test_utils::mark; | 18 | use test_utils::mark; |
16 | 19 | ||
17 | // Creates a match error. If we're currently attempting to match some code that we thought we were | 20 | // Creates a match error. If we're currently attempting to match some code that we thought we were |
@@ -398,11 +401,11 @@ impl<'db, 'sema> Matcher<'db, 'sema> { | |||
398 | code: &SyntaxNode, | 401 | code: &SyntaxNode, |
399 | ) -> Result<(), MatchFailed> { | 402 | ) -> Result<(), MatchFailed> { |
400 | // Build a map keyed by field name. | 403 | // Build a map keyed by field name. |
401 | let mut fields_by_name = FxHashMap::default(); | 404 | let mut fields_by_name: FxHashMap<SmolStr, SyntaxNode> = FxHashMap::default(); |
402 | for child in code.children() { | 405 | for child in code.children() { |
403 | if let Some(record) = ast::RecordExprField::cast(child.clone()) { | 406 | if let Some(record) = ast::RecordExprField::cast(child.clone()) { |
404 | if let Some(name) = record.field_name() { | 407 | if let Some(name) = record.field_name() { |
405 | fields_by_name.insert(name.text().clone(), child.clone()); | 408 | fields_by_name.insert(name.text().into(), child.clone()); |
406 | } | 409 | } |
407 | } | 410 | } |
408 | } | 411 | } |
@@ -473,9 +476,7 @@ impl<'db, 'sema> Matcher<'db, 'sema> { | |||
473 | } | 476 | } |
474 | SyntaxElement::Node(n) => { | 477 | SyntaxElement::Node(n) => { |
475 | if let Some(first_token) = n.first_token() { | 478 | if let Some(first_token) = n.first_token() { |
476 | if Some(first_token.text().as_str()) | 479 | if Some(first_token.text()) == next_pattern_token.as_deref() { |
477 | == next_pattern_token.as_deref() | ||
478 | { | ||
479 | if let Some(SyntaxElement::Node(p)) = pattern.next() { | 480 | if let Some(SyntaxElement::Node(p)) = pattern.next() { |
480 | // We have a subtree that starts with the next token in our pattern. | 481 | // We have a subtree that starts with the next token in our pattern. |
481 | self.attempt_match_token_tree(phase, &p, &n)?; | 482 | self.attempt_match_token_tree(phase, &p, &n)?; |
diff --git a/crates/ssr/src/replacing.rs b/crates/ssr/src/replacing.rs index 7e7ce37bd..06a94a46c 100644 --- a/crates/ssr/src/replacing.rs +++ b/crates/ssr/src/replacing.rs | |||
@@ -173,7 +173,7 @@ impl ReplacementRenderer<'_> { | |||
173 | ); | 173 | ); |
174 | } | 174 | } |
175 | } else { | 175 | } else { |
176 | self.out.push_str(token.text().as_str()); | 176 | self.out.push_str(token.text()); |
177 | } | 177 | } |
178 | } | 178 | } |
179 | 179 | ||
diff --git a/crates/ssr/src/resolving.rs b/crates/ssr/src/resolving.rs index f5ceb5729..14e5a3b69 100644 --- a/crates/ssr/src/resolving.rs +++ b/crates/ssr/src/resolving.rs | |||
@@ -228,7 +228,7 @@ impl<'db> ResolutionScope<'db> { | |||
228 | None, | 228 | None, |
229 | |_ty, assoc_item| { | 229 | |_ty, assoc_item| { |
230 | let item_name = assoc_item.name(self.scope.db)?; | 230 | let item_name = assoc_item.name(self.scope.db)?; |
231 | if item_name.to_string().as_str() == name.text().as_str() { | 231 | if item_name.to_string().as_str() == name.text() { |
232 | Some(hir::PathResolution::AssocItem(assoc_item)) | 232 | Some(hir::PathResolution::AssocItem(assoc_item)) |
233 | } else { | 233 | } else { |
234 | None | 234 | None |