+ impl MiscCollector<'_, '_> {
+ fn allocate_use_tree_hir_id_counters(
+ &mut self,
+ tree: &UseTree,
+ owner: DefIndex,
+ ) {
+ match tree.kind {
+ UseTreeKind::Simple(_, id1, id2) => {
+ for &id in &[id1, id2] {
+ self.lctx.resolver.definitions().create_def_with_parent(
+ owner,
+ id,
+ DefPathData::Misc,
+ DefIndexAddressSpace::High,
+ Mark::root(),
+ tree.prefix.span,
+ );
+ self.lctx.allocate_hir_id_counter(id);
+ }
+ }
+ UseTreeKind::Glob => (),
+ UseTreeKind::Nested(ref trees) => {
+ for &(ref use_tree, id) in trees {
+ let hir_id = self.lctx.allocate_hir_id_counter(id).hir_id;
+ self.allocate_use_tree_hir_id_counters(use_tree, hir_id.owner);
+ }
+ }
+ }
+ }
+ }
+