diff options
Diffstat (limited to 'crates')
-rw-r--r-- | crates/ra_db/src/fixture.rs | 18 | ||||
-rw-r--r-- | crates/ra_hir_def/src/nameres/tests.rs | 25 | ||||
-rw-r--r-- | crates/test_utils/src/fixture.rs | 12 |
3 files changed, 2 insertions, 53 deletions
diff --git a/crates/ra_db/src/fixture.rs b/crates/ra_db/src/fixture.rs index f7d9118a9..bf897baff 100644 --- a/crates/ra_db/src/fixture.rs +++ b/crates/ra_db/src/fixture.rs | |||
@@ -114,7 +114,6 @@ fn with_single_file(db: &mut dyn SourceDatabaseExt, ra_fixture: &str) -> FileId | |||
114 | let crate_graph = if let Some(entry) = fixture { | 114 | let crate_graph = if let Some(entry) = fixture { |
115 | let meta = match ParsedMeta::from(&entry.meta) { | 115 | let meta = match ParsedMeta::from(&entry.meta) { |
116 | ParsedMeta::File(it) => it, | 116 | ParsedMeta::File(it) => it, |
117 | _ => panic!("with_single_file only support file meta"), | ||
118 | }; | 117 | }; |
119 | 118 | ||
120 | let mut crate_graph = CrateGraph::default(); | 119 | let mut crate_graph = CrateGraph::default(); |
@@ -159,21 +158,14 @@ fn with_files(db: &mut dyn SourceDatabaseExt, fixture: &str) -> Option<FilePosit | |||
159 | let mut default_crate_root: Option<FileId> = None; | 158 | let mut default_crate_root: Option<FileId> = None; |
160 | 159 | ||
161 | let mut file_set = FileSet::default(); | 160 | let mut file_set = FileSet::default(); |
162 | let mut source_root_id = WORKSPACE; | 161 | let source_root_id = WORKSPACE; |
163 | let mut source_root_prefix = "/".to_string(); | 162 | let source_root_prefix = "/".to_string(); |
164 | let mut file_id = FileId(0); | 163 | let mut file_id = FileId(0); |
165 | 164 | ||
166 | let mut file_position = None; | 165 | let mut file_position = None; |
167 | 166 | ||
168 | for entry in fixture.iter() { | 167 | for entry in fixture.iter() { |
169 | let meta = match ParsedMeta::from(&entry.meta) { | 168 | let meta = match ParsedMeta::from(&entry.meta) { |
170 | ParsedMeta::Root { path } => { | ||
171 | let file_set = std::mem::replace(&mut file_set, FileSet::default()); | ||
172 | db.set_source_root(source_root_id, Arc::new(SourceRoot::new_local(file_set))); | ||
173 | source_root_id.0 += 1; | ||
174 | source_root_prefix = path; | ||
175 | continue; | ||
176 | } | ||
177 | ParsedMeta::File(it) => it, | 169 | ParsedMeta::File(it) => it, |
178 | }; | 170 | }; |
179 | assert!(meta.path.starts_with(&source_root_prefix)); | 171 | assert!(meta.path.starts_with(&source_root_prefix)); |
@@ -239,7 +231,6 @@ fn with_files(db: &mut dyn SourceDatabaseExt, fixture: &str) -> Option<FilePosit | |||
239 | } | 231 | } |
240 | 232 | ||
241 | enum ParsedMeta { | 233 | enum ParsedMeta { |
242 | Root { path: String }, | ||
243 | File(FileMeta), | 234 | File(FileMeta), |
244 | } | 235 | } |
245 | 236 | ||
@@ -255,11 +246,6 @@ struct FileMeta { | |||
255 | impl From<&FixtureMeta> for ParsedMeta { | 246 | impl From<&FixtureMeta> for ParsedMeta { |
256 | fn from(meta: &FixtureMeta) -> Self { | 247 | fn from(meta: &FixtureMeta) -> Self { |
257 | match meta { | 248 | match meta { |
258 | FixtureMeta::Root { path } => { | ||
259 | // `Self::Root` causes a false warning: 'variant is never constructed: `Root` ' | ||
260 | // see https://github.com/rust-lang/rust/issues/69018 | ||
261 | ParsedMeta::Root { path: path.to_owned() } | ||
262 | } | ||
263 | FixtureMeta::File(f) => Self::File(FileMeta { | 249 | FixtureMeta::File(f) => Self::File(FileMeta { |
264 | path: f.path.to_owned(), | 250 | path: f.path.to_owned(), |
265 | krate: f.crate_name.to_owned(), | 251 | krate: f.crate_name.to_owned(), |
diff --git a/crates/ra_hir_def/src/nameres/tests.rs b/crates/ra_hir_def/src/nameres/tests.rs index 05cd0297d..503099fb7 100644 --- a/crates/ra_hir_def/src/nameres/tests.rs +++ b/crates/ra_hir_def/src/nameres/tests.rs | |||
@@ -424,31 +424,6 @@ fn extern_crate_rename_2015_edition() { | |||
424 | } | 424 | } |
425 | 425 | ||
426 | #[test] | 426 | #[test] |
427 | fn import_across_source_roots() { | ||
428 | let map = def_map( | ||
429 | " | ||
430 | //- /main.rs crate:main deps:test_crate | ||
431 | use test_crate::a::b::C; | ||
432 | |||
433 | //- root /test_crate/ | ||
434 | |||
435 | //- /test_crate/lib.rs crate:test_crate | ||
436 | pub mod a { | ||
437 | pub mod b { | ||
438 | pub struct C; | ||
439 | } | ||
440 | } | ||
441 | |||
442 | ", | ||
443 | ); | ||
444 | |||
445 | assert_snapshot!(map, @r###" | ||
446 | ⋮crate | ||
447 | ⋮C: t v | ||
448 | "###); | ||
449 | } | ||
450 | |||
451 | #[test] | ||
452 | fn reexport_across_crates() { | 427 | fn reexport_across_crates() { |
453 | let map = def_map( | 428 | let map = def_map( |
454 | " | 429 | " |
diff --git a/crates/test_utils/src/fixture.rs b/crates/test_utils/src/fixture.rs index d0a732031..0dbeb01b1 100644 --- a/crates/test_utils/src/fixture.rs +++ b/crates/test_utils/src/fixture.rs | |||
@@ -10,7 +10,6 @@ pub struct FixtureEntry { | |||
10 | 10 | ||
11 | #[derive(Debug, Eq, PartialEq)] | 11 | #[derive(Debug, Eq, PartialEq)] |
12 | pub enum FixtureMeta { | 12 | pub enum FixtureMeta { |
13 | Root { path: String }, | ||
14 | File(FileMeta), | 13 | File(FileMeta), |
15 | } | 14 | } |
16 | 15 | ||
@@ -27,7 +26,6 @@ pub struct FileMeta { | |||
27 | impl FixtureMeta { | 26 | impl FixtureMeta { |
28 | pub fn path(&self) -> &str { | 27 | pub fn path(&self) -> &str { |
29 | match self { | 28 | match self { |
30 | FixtureMeta::Root { path } => &path, | ||
31 | FixtureMeta::File(f) => &f.path, | 29 | FixtureMeta::File(f) => &f.path, |
32 | } | 30 | } |
33 | } | 31 | } |
@@ -35,21 +33,18 @@ impl FixtureMeta { | |||
35 | pub fn crate_name(&self) -> Option<&String> { | 33 | pub fn crate_name(&self) -> Option<&String> { |
36 | match self { | 34 | match self { |
37 | FixtureMeta::File(f) => f.crate_name.as_ref(), | 35 | FixtureMeta::File(f) => f.crate_name.as_ref(), |
38 | _ => None, | ||
39 | } | 36 | } |
40 | } | 37 | } |
41 | 38 | ||
42 | pub fn cfg_options(&self) -> Option<&CfgOptions> { | 39 | pub fn cfg_options(&self) -> Option<&CfgOptions> { |
43 | match self { | 40 | match self { |
44 | FixtureMeta::File(f) => Some(&f.cfg), | 41 | FixtureMeta::File(f) => Some(&f.cfg), |
45 | _ => None, | ||
46 | } | 42 | } |
47 | } | 43 | } |
48 | 44 | ||
49 | pub fn edition(&self) -> Option<&String> { | 45 | pub fn edition(&self) -> Option<&String> { |
50 | match self { | 46 | match self { |
51 | FixtureMeta::File(f) => f.edition.as_ref(), | 47 | FixtureMeta::File(f) => f.edition.as_ref(), |
52 | _ => None, | ||
53 | } | 48 | } |
54 | } | 49 | } |
55 | 50 | ||
@@ -63,7 +58,6 @@ impl FixtureMeta { | |||
63 | Self { | 58 | Self { |
64 | iter: match meta { | 59 | iter: match meta { |
65 | FixtureMeta::File(f) => Some(f.env.iter()), | 60 | FixtureMeta::File(f) => Some(f.env.iter()), |
66 | _ => None, | ||
67 | }, | 61 | }, |
68 | } | 62 | } |
69 | } | 63 | } |
@@ -146,12 +140,6 @@ The offending line: {:?}"#, | |||
146 | fn parse_meta(meta: &str) -> FixtureMeta { | 140 | fn parse_meta(meta: &str) -> FixtureMeta { |
147 | let components = meta.split_ascii_whitespace().collect::<Vec<_>>(); | 141 | let components = meta.split_ascii_whitespace().collect::<Vec<_>>(); |
148 | 142 | ||
149 | if components[0] == "root" { | ||
150 | let path = components[1].to_string(); | ||
151 | assert!(path.starts_with("/") && path.ends_with("/")); | ||
152 | return FixtureMeta::Root { path }; | ||
153 | } | ||
154 | |||
155 | let path = components[0].to_string(); | 143 | let path = components[0].to_string(); |
156 | assert!(path.starts_with("/")); | 144 | assert!(path.starts_with("/")); |
157 | 145 | ||