]> git.lizzy.rs Git - rust.git/commitdiff
Add test for extern crate renames
authorFlorian Diebold <flodiebold@gmail.com>
Fri, 1 Feb 2019 23:36:48 +0000 (00:36 +0100)
committerFlorian Diebold <flodiebold@gmail.com>
Mon, 4 Feb 2019 20:49:34 +0000 (21:49 +0100)
crates/ra_hir/src/nameres/tests.rs

index 81c8a4f12d781aaba16af2fde2bf7366d7a55351..42c59f76f04dc7915986ca71f5be1acde3ea7b4b 100644 (file)
@@ -334,6 +334,48 @@ fn item_map_across_crates() {
     );
 }
 
+#[test]
+fn extern_crate_rename() {
+    let (mut db, sr) = MockDatabase::with_files(
+        "
+        //- /main.rs
+        extern crate alloc as alloc_crate;
+
+        mod alloc;
+
+        use alloc_crate::Arc;
+
+        //- /lib.rs
+        struct Arc;
+    ",
+    );
+    let main_id = sr.files[RelativePath::new("/main.rs")];
+    let lib_id = sr.files[RelativePath::new("/lib.rs")];
+
+    let mut crate_graph = CrateGraph::default();
+    let main_crate = crate_graph.add_crate_root(main_id);
+    let lib_crate = crate_graph.add_crate_root(lib_id);
+    crate_graph
+        .add_dep(main_crate, "alloc".into(), lib_crate)
+        .unwrap();
+
+    db.set_crate_graph(Arc::new(crate_graph));
+
+    let module = crate::source_binder::module_from_file_id(&db, main_id).unwrap();
+    let krate = module.krate(&db).unwrap();
+    let item_map = db.item_map(krate);
+
+    check_module_item_map(
+        &item_map,
+        module.module_id,
+        "
+            Arc: t v
+            alloc: t
+            alloc_crate: t
+        ",
+    );
+}
+
 #[test]
 fn import_across_source_roots() {
     let (mut db, sr) = MockDatabase::with_files(