aboutsummaryrefslogtreecommitdiff
path: root/crates/ra_analysis/src/mock_analysis.rs
diff options
context:
space:
mode:
Diffstat (limited to 'crates/ra_analysis/src/mock_analysis.rs')
-rw-r--r--crates/ra_analysis/src/mock_analysis.rs28
1 files changed, 1 insertions, 27 deletions
diff --git a/crates/ra_analysis/src/mock_analysis.rs b/crates/ra_analysis/src/mock_analysis.rs
index b37371499..960529404 100644
--- a/crates/ra_analysis/src/mock_analysis.rs
+++ b/crates/ra_analysis/src/mock_analysis.rs
@@ -55,26 +55,6 @@ impl MockAnalysis {
55 (res, position) 55 (res, position)
56 } 56 }
57 57
58 /// Same as `with_files`, but requires that a single file contains two `<|>` marker,
59 /// whose range is also returned.
60 pub fn with_files_and_range(fixture: &str) -> (MockAnalysis, FileRange) {
61 let mut range = None;
62 let mut res = MockAnalysis::new();
63 for entry in parse_fixture(fixture) {
64 if entry.text.contains(CURSOR_MARKER) {
65 assert!(
66 range.is_none(),
67 "only two marker (<|>) per fixture is allowed"
68 );
69 range = Some(res.add_file_with_range(&entry.meta, &entry.text));
70 } else {
71 res.add_file(&entry.meta, &entry.text);
72 }
73 }
74 let range = range.expect("expected two marker (<|>)");
75 (res, range)
76 }
77
78 pub fn add_file(&mut self, path: &str, text: &str) -> FileId { 58 pub fn add_file(&mut self, path: &str, text: &str) -> FileId {
79 let file_id = FileId((self.files.len() + 1) as u32); 59 let file_id = FileId((self.files.len() + 1) as u32);
80 self.files.push((path.to_string(), text.to_string())); 60 self.files.push((path.to_string(), text.to_string()));
@@ -122,18 +102,12 @@ impl MockAnalysis {
122 } 102 }
123} 103}
124 104
125/// Creates analysis from a multi-file fixture, returns positions marked with a <|>. 105/// Creates analysis from a multi-file fixture, returns positions marked with <|>.
126pub fn analysis_and_position(fixture: &str) -> (Analysis, FilePosition) { 106pub fn analysis_and_position(fixture: &str) -> (Analysis, FilePosition) {
127 let (mock, position) = MockAnalysis::with_files_and_position(fixture); 107 let (mock, position) = MockAnalysis::with_files_and_position(fixture);
128 (mock.analysis(), position) 108 (mock.analysis(), position)
129} 109}
130 110
131/// Creates analysis from a multi-file fixture, returns ranges marked with two <|>.
132pub fn analysis_and_range(fixture: &str) -> (Analysis, FileRange) {
133 let (mock, range) = MockAnalysis::with_files_and_range(fixture);
134 (mock.analysis(), range)
135}
136
137/// Creates analysis for a single file. 111/// Creates analysis for a single file.
138pub fn single_file(code: &str) -> (Analysis, FileId) { 112pub fn single_file(code: &str) -> (Analysis, FileId) {
139 let mut mock = MockAnalysis::new(); 113 let mut mock = MockAnalysis::new();