Unnamed repository; edit this file 'description' to name the repository.
Diffstat (limited to 'crates/ide-ssr/src/matching.rs')
-rw-r--r--crates/ide-ssr/src/matching.rs58
1 files changed, 30 insertions, 28 deletions
diff --git a/crates/ide-ssr/src/matching.rs b/crates/ide-ssr/src/matching.rs
index 595f0bb5fa..264f0660d7 100644
--- a/crates/ide-ssr/src/matching.rs
+++ b/crates/ide-ssr/src/matching.rs
@@ -799,33 +799,35 @@ mod tests {
let input = "fn foo() {} fn bar() {} fn main() { foo(1+2); }";
let (db, position, selections) = crate::tests::single_file(input);
- let position = ide_db::FilePosition {
- file_id: position.file_id.file_id(&db),
- offset: position.offset,
- };
- let mut match_finder = MatchFinder::in_context(
- &db,
- position,
- selections
- .into_iter()
- .map(|frange| ide_db::FileRange {
- file_id: frange.file_id.file_id(&db),
- range: frange.range,
- })
- .collect(),
- )
- .unwrap();
- match_finder.add_rule(rule).unwrap();
- let matches = match_finder.matches();
- assert_eq!(matches.matches.len(), 1);
- assert_eq!(matches.matches[0].matched_node.text(), "foo(1+2)");
- assert_eq!(matches.matches[0].placeholder_values.len(), 1);
-
- let edits = match_finder.edits();
- assert_eq!(edits.len(), 1);
- let edit = &edits[&position.file_id];
- let mut after = input.to_owned();
- edit.apply(&mut after);
- assert_eq!(after, "fn foo() {} fn bar() {} fn main() { bar(1+2); }");
+ hir::attach_db(&db, || {
+ let position = ide_db::FilePosition {
+ file_id: position.file_id.file_id(&db),
+ offset: position.offset,
+ };
+ let mut match_finder = MatchFinder::in_context(
+ &db,
+ position,
+ selections
+ .into_iter()
+ .map(|frange| ide_db::FileRange {
+ file_id: frange.file_id.file_id(&db),
+ range: frange.range,
+ })
+ .collect(),
+ )
+ .unwrap();
+ match_finder.add_rule(rule).unwrap();
+ let matches = match_finder.matches();
+ assert_eq!(matches.matches.len(), 1);
+ assert_eq!(matches.matches[0].matched_node.text(), "foo(1+2)");
+ assert_eq!(matches.matches[0].placeholder_values.len(), 1);
+
+ let edits = match_finder.edits();
+ assert_eq!(edits.len(), 1);
+ let edit = &edits[&position.file_id];
+ let mut after = input.to_owned();
+ edit.apply(&mut after);
+ assert_eq!(after, "fn foo() {} fn bar() {} fn main() { bar(1+2); }");
+ });
}
}