Unnamed repository; edit this file 'description' to name the repository.
Diffstat (limited to 'crates/ide_ssr/src/replacing.rs')
-rw-r--r--crates/ide_ssr/src/replacing.rs8
1 files changed, 5 insertions, 3 deletions
diff --git a/crates/ide_ssr/src/replacing.rs b/crates/ide_ssr/src/replacing.rs
index 9265af7c13..1c4cb6bc77 100644
--- a/crates/ide_ssr/src/replacing.rs
+++ b/crates/ide_ssr/src/replacing.rs
@@ -1,5 +1,6 @@
//! Code for applying replacement templates for matches that have previously been found.
+use crate::fragments;
use crate::{resolving::ResolvedRule, Match, SsrMatches};
use itertools::Itertools;
use rustc_hash::{FxHashMap, FxHashSet};
@@ -228,9 +229,10 @@ fn parse_as_kind(code: &str, kind: SyntaxKind) -> Option<SyntaxNode> {
if let Ok(expr) = ast::Expr::parse(code) {
return Some(expr.syntax().clone());
}
- } else if ast::Item::can_cast(kind) {
- if let Ok(item) = ast::Item::parse(code) {
- return Some(item.syntax().clone());
+ }
+ if ast::Item::can_cast(kind) {
+ if let Ok(item) = fragments::item(code) {
+ return Some(item);
}
}
None