about summary refs log tree commit diff
diff options
context:
space:
mode:
authorIgor Matuszewski <Xanewok@gmail.com>2019-10-17 20:48:00 +0200
committerIgor Matuszewski <Xanewok@gmail.com>2019-10-17 20:48:00 +0200
commit5fe88abed06b3efc8627d726c18dbc48d9d653b3 (patch)
treeae536eb58cec08a7667312bb3b9839722ad0998c
parentea45150837990ccf40edfe2725ac492fc35193a1 (diff)
downloadrust-5fe88abed06b3efc8627d726c18dbc48d9d653b3.tar.gz
rust-5fe88abed06b3efc8627d726c18dbc48d9d653b3.zip
save-analysis: Nest tables when processing impl items
-rw-r--r--src/librustc_save_analysis/dump_visitor.rs21
1 files changed, 12 insertions, 9 deletions
diff --git a/src/librustc_save_analysis/dump_visitor.rs b/src/librustc_save_analysis/dump_visitor.rs
index 502ae337b52..e282936b5d9 100644
--- a/src/librustc_save_analysis/dump_visitor.rs
+++ b/src/librustc_save_analysis/dump_visitor.rs
@@ -669,15 +669,18 @@ impl<'l, 'tcx> DumpVisitor<'l, 'tcx> {
                 }
             }
         }
-        self.visit_ty(&typ);
-        if let &Some(ref trait_ref) = trait_ref {
-            self.process_path(trait_ref.ref_id, &trait_ref.path);
-        }
-        self.process_generic_params(generics, "", item.id);
-        for impl_item in impl_items {
-            let map = &self.tcx.hir();
-            self.process_impl_item(impl_item, map.local_def_id_from_node_id(item.id));
-        }
+
+        let map = &self.tcx.hir();
+        self.nest_tables(item.id, |v| {
+            v.visit_ty(&typ);
+            if let &Some(ref trait_ref) = trait_ref {
+                v.process_path(trait_ref.ref_id, &trait_ref.path);
+            }
+            v.process_generic_params(generics, "", item.id);
+            for impl_item in impl_items {
+                v.process_impl_item(impl_item, map.local_def_id_from_node_id(item.id));
+            }
+        });
     }
 
     fn process_trait(