about summary refs log tree commit diff
diff options
context:
space:
mode:
authorPietro Albini <pietro@pietroalbini.org>2017-12-30 22:44:22 +0100
committerPietro Albini <pietro@pietroalbini.org>2017-12-30 22:55:59 +0100
commit9991fdf17a21d10df35af5a6346998de672a390e (patch)
treee4c4218c4e36168eebe83946424d6f883f3f3bba
parentf0e5c953e4be3b5aee49cdcc0b1c244681392961 (diff)
downloadrust-9991fdf17a21d10df35af5a6346998de672a390e.tar.gz
rust-9991fdf17a21d10df35af5a6346998de672a390e.zip
Fix nested imports not included in the save_analysis output
-rw-r--r--src/librustc_save_analysis/dump_visitor.rs8
1 files changed, 7 insertions, 1 deletions
diff --git a/src/librustc_save_analysis/dump_visitor.rs b/src/librustc_save_analysis/dump_visitor.rs
index ed3b8eadad7..808bd2a22e8 100644
--- a/src/librustc_save_analysis/dump_visitor.rs
+++ b/src/librustc_save_analysis/dump_visitor.rs
@@ -1252,7 +1252,13 @@ impl<'l, 'tcx: 'l, 'll, O: DumpOutput + 'll> DumpVisitor<'l, 'tcx, 'll, O> {
                          root_item: &'l ast::Item,
                          prefix: &ast::Path) {
         let path = &use_tree.prefix;
-        let access = access_from!(self.save_ctxt, root_item);
+
+        // The access is calculated using the current tree ID, but with the root tree's visibility
+        // (since nested trees don't have their own visibility).
+        let access = Access {
+            public: root_item.vis == ast::Visibility::Public,
+            reachable: self.save_ctxt.analysis.access_levels.is_reachable(id),
+        };
 
         // The parent def id of a given use tree is always the enclosing item.
         let parent = self.save_ctxt.tcx.hir.opt_local_def_id(id)