|
34 | 34 | #![feature(let_chains)] |
35 | 35 | #![feature(never_type)] |
36 | 36 | #![recursion_limit = "256"] |
37 | | -#![allow(rustc::potential_query_instability)] |
38 | 37 | #![deny(rustc::untranslatable_diagnostic)] |
39 | 38 | #![deny(rustc::diagnostic_outside_of_impl)] |
40 | 39 |
|
@@ -107,7 +106,7 @@ struct LoweringContext<'a, 'hir> { |
107 | 106 | /// Attributes inside the owner being lowered. |
108 | 107 | attrs: SortedMap<hir::ItemLocalId, &'hir [Attribute]>, |
109 | 108 | /// Collect items that were created by lowering the current owner. |
110 | | - children: FxHashMap<LocalDefId, hir::MaybeOwner<&'hir hir::OwnerInfo<'hir>>>, |
| 109 | + children: Vec<(LocalDefId, hir::MaybeOwner<&'hir hir::OwnerInfo<'hir>>)>, |
111 | 110 |
|
112 | 111 | generator_kind: Option<hir::GeneratorKind>, |
113 | 112 |
|
@@ -611,8 +610,8 @@ impl<'a, 'hir> LoweringContext<'a, 'hir> { |
611 | 610 | self.impl_trait_defs = current_impl_trait_defs; |
612 | 611 | self.impl_trait_bounds = current_impl_trait_bounds; |
613 | 612 |
|
614 | | - let _old = self.children.insert(def_id, hir::MaybeOwner::Owner(info)); |
615 | | - debug_assert!(_old.is_none()) |
| 613 | + debug_assert!(self.children.iter().find(|(id, _)| id == &def_id).is_none()); |
| 614 | + self.children.push((def_id, hir::MaybeOwner::Owner(info))); |
616 | 615 | } |
617 | 616 |
|
618 | 617 | /// Installs the remapping `remap` in scope while `f` is being executed. |
@@ -719,8 +718,7 @@ impl<'a, 'hir> LoweringContext<'a, 'hir> { |
719 | 718 |
|
720 | 719 | assert_ne!(local_id, hir::ItemLocalId::new(0)); |
721 | 720 | if let Some(def_id) = self.opt_local_def_id(ast_node_id) { |
722 | | - // Do not override a `MaybeOwner::Owner` that may already here. |
723 | | - self.children.entry(def_id).or_insert(hir::MaybeOwner::NonOwner(hir_id)); |
| 721 | + self.children.push((def_id, hir::MaybeOwner::NonOwner(hir_id))); |
724 | 722 | self.local_id_to_def_id.insert(local_id, def_id); |
725 | 723 | } |
726 | 724 |
|
|
0 commit comments