diff options
author | Florian Diebold <[email protected]> | 2019-02-11 22:11:12 +0000 |
---|---|---|
committer | Florian Diebold <[email protected]> | 2019-02-13 19:10:46 +0000 |
commit | d5ad38cbb87103d8713855e0ec705fd957249afd (patch) | |
tree | 3c414dafaa6e42cc11dd71f9f9b59291eff9832e /crates/ra_hir/src/nameres/tests.rs | |
parent | 3a9934e2c3280864877a90c5ced777bad898d73a (diff) |
Resolve 2015 style imports
Diffstat (limited to 'crates/ra_hir/src/nameres/tests.rs')
-rw-r--r-- | crates/ra_hir/src/nameres/tests.rs | 45 |
1 files changed, 45 insertions, 0 deletions
diff --git a/crates/ra_hir/src/nameres/tests.rs b/crates/ra_hir/src/nameres/tests.rs index 68ebe963a..bee475c3a 100644 --- a/crates/ra_hir/src/nameres/tests.rs +++ b/crates/ra_hir/src/nameres/tests.rs | |||
@@ -266,6 +266,51 @@ fn glob_across_crates() { | |||
266 | } | 266 | } |
267 | 267 | ||
268 | #[test] | 268 | #[test] |
269 | fn edition_2015_imports() { | ||
270 | use ra_db::{CrateGraph, Edition}; | ||
271 | let mut db = MockDatabase::with_files( | ||
272 | " | ||
273 | //- /main.rs | ||
274 | mod foo; | ||
275 | mod bar; | ||
276 | |||
277 | //- /bar.rs | ||
278 | struct Bar; | ||
279 | |||
280 | //- /foo.rs | ||
281 | use bar::Bar; | ||
282 | use other_crate::FromLib; | ||
283 | |||
284 | //- /lib.rs | ||
285 | struct FromLib; | ||
286 | ", | ||
287 | ); | ||
288 | let main_id = db.file_id_of("/main.rs"); | ||
289 | let lib_id = db.file_id_of("/lib.rs"); | ||
290 | let foo_id = db.file_id_of("/foo.rs"); | ||
291 | |||
292 | let mut crate_graph = CrateGraph::default(); | ||
293 | let main_crate = crate_graph.add_crate_root(main_id, Edition::Edition2015); | ||
294 | let lib_crate = crate_graph.add_crate_root(lib_id, Edition::Edition2018); | ||
295 | crate_graph.add_dep(main_crate, "other_crate".into(), lib_crate).unwrap(); | ||
296 | |||
297 | db.set_crate_graph(Arc::new(crate_graph)); | ||
298 | |||
299 | let module = crate::source_binder::module_from_file_id(&db, foo_id).unwrap(); | ||
300 | let krate = module.krate(&db).unwrap(); | ||
301 | let item_map = db.item_map(krate); | ||
302 | |||
303 | check_module_item_map( | ||
304 | &item_map, | ||
305 | module.module_id, | ||
306 | " | ||
307 | Bar: t v | ||
308 | FromLib: t v | ||
309 | ", | ||
310 | ); | ||
311 | } | ||
312 | |||
313 | #[test] | ||
269 | fn module_resolution_works_for_non_standard_filenames() { | 314 | fn module_resolution_works_for_non_standard_filenames() { |
270 | let mut db = MockDatabase::with_files( | 315 | let mut db = MockDatabase::with_files( |
271 | " | 316 | " |