Auto merge of #104330 - CastilloDel:ast_lowering, r=cjgillot
Remove allow(rustc::potential_query_instability) from rustc_ast_lowering Related to https://github.com/rust-lang/rust/issues/84447. `@cjgillot` Thanks for helping me!
This commit is contained in:
commit
fd3bfb3551
3 changed files with 10 additions and 13 deletions
|
@ -11,7 +11,7 @@ use super::LoweringContext;
|
||||||
|
|
||||||
use rustc_ast::ptr::P;
|
use rustc_ast::ptr::P;
|
||||||
use rustc_ast::*;
|
use rustc_ast::*;
|
||||||
use rustc_data_structures::fx::{FxHashMap, FxHashSet};
|
use rustc_data_structures::fx::{FxHashMap, FxHashSet, FxIndexMap};
|
||||||
use rustc_hir as hir;
|
use rustc_hir as hir;
|
||||||
use rustc_hir::def::{DefKind, Res};
|
use rustc_hir::def::{DefKind, Res};
|
||||||
use rustc_hir::definitions::DefPathData;
|
use rustc_hir::definitions::DefPathData;
|
||||||
|
@ -71,7 +71,7 @@ impl<'a, 'hir> LoweringContext<'a, 'hir> {
|
||||||
.emit();
|
.emit();
|
||||||
}
|
}
|
||||||
|
|
||||||
let mut clobber_abis = FxHashMap::default();
|
let mut clobber_abis = FxIndexMap::default();
|
||||||
if let Some(asm_arch) = asm_arch {
|
if let Some(asm_arch) = asm_arch {
|
||||||
for (abi_name, abi_span) in &asm.clobber_abis {
|
for (abi_name, abi_span) in &asm.clobber_abis {
|
||||||
match asm::InlineAsmClobberAbi::parse(asm_arch, &self.tcx.sess.target, *abi_name) {
|
match asm::InlineAsmClobberAbi::parse(asm_arch, &self.tcx.sess.target, *abi_name) {
|
||||||
|
|
|
@ -6,7 +6,6 @@ use super::{FnDeclKind, LoweringContext, ParamMode};
|
||||||
use rustc_ast::ptr::P;
|
use rustc_ast::ptr::P;
|
||||||
use rustc_ast::visit::AssocCtxt;
|
use rustc_ast::visit::AssocCtxt;
|
||||||
use rustc_ast::*;
|
use rustc_ast::*;
|
||||||
use rustc_data_structures::fx::FxHashMap;
|
|
||||||
use rustc_data_structures::sorted_map::SortedMap;
|
use rustc_data_structures::sorted_map::SortedMap;
|
||||||
use rustc_hir as hir;
|
use rustc_hir as hir;
|
||||||
use rustc_hir::def::{DefKind, Res};
|
use rustc_hir::def::{DefKind, Res};
|
||||||
|
@ -67,7 +66,7 @@ impl<'a, 'hir> ItemLowerer<'a, 'hir> {
|
||||||
// HirId handling.
|
// HirId handling.
|
||||||
bodies: Vec::new(),
|
bodies: Vec::new(),
|
||||||
attrs: SortedMap::default(),
|
attrs: SortedMap::default(),
|
||||||
children: FxHashMap::default(),
|
children: Vec::default(),
|
||||||
current_hir_id_owner: hir::CRATE_OWNER_ID,
|
current_hir_id_owner: hir::CRATE_OWNER_ID,
|
||||||
item_local_id_counter: hir::ItemLocalId::new(0),
|
item_local_id_counter: hir::ItemLocalId::new(0),
|
||||||
node_id_to_local_id: Default::default(),
|
node_id_to_local_id: Default::default(),
|
||||||
|
@ -534,12 +533,12 @@ impl<'hir> LoweringContext<'_, 'hir> {
|
||||||
for new_node_id in [id1, id2] {
|
for new_node_id in [id1, id2] {
|
||||||
let new_id = self.local_def_id(new_node_id);
|
let new_id = self.local_def_id(new_node_id);
|
||||||
let Some(res) = resolutions.next() else {
|
let Some(res) = resolutions.next() else {
|
||||||
|
debug_assert!(self.children.iter().find(|(id, _)| id == &new_id).is_none());
|
||||||
// Associate an HirId to both ids even if there is no resolution.
|
// Associate an HirId to both ids even if there is no resolution.
|
||||||
let _old = self.children.insert(
|
self.children.push((
|
||||||
new_id,
|
new_id,
|
||||||
hir::MaybeOwner::NonOwner(hir::HirId::make_owner(new_id)),
|
hir::MaybeOwner::NonOwner(hir::HirId::make_owner(new_id))),
|
||||||
);
|
);
|
||||||
debug_assert!(_old.is_none());
|
|
||||||
continue;
|
continue;
|
||||||
};
|
};
|
||||||
let ident = *ident;
|
let ident = *ident;
|
||||||
|
|
|
@ -34,7 +34,6 @@
|
||||||
#![feature(let_chains)]
|
#![feature(let_chains)]
|
||||||
#![feature(never_type)]
|
#![feature(never_type)]
|
||||||
#![recursion_limit = "256"]
|
#![recursion_limit = "256"]
|
||||||
#![allow(rustc::potential_query_instability)]
|
|
||||||
#![deny(rustc::untranslatable_diagnostic)]
|
#![deny(rustc::untranslatable_diagnostic)]
|
||||||
#![deny(rustc::diagnostic_outside_of_impl)]
|
#![deny(rustc::diagnostic_outside_of_impl)]
|
||||||
|
|
||||||
|
@ -107,7 +106,7 @@ struct LoweringContext<'a, 'hir> {
|
||||||
/// Attributes inside the owner being lowered.
|
/// Attributes inside the owner being lowered.
|
||||||
attrs: SortedMap<hir::ItemLocalId, &'hir [Attribute]>,
|
attrs: SortedMap<hir::ItemLocalId, &'hir [Attribute]>,
|
||||||
/// Collect items that were created by lowering the current owner.
|
/// Collect items that were created by lowering the current owner.
|
||||||
children: FxHashMap<LocalDefId, hir::MaybeOwner<&'hir hir::OwnerInfo<'hir>>>,
|
children: Vec<(LocalDefId, hir::MaybeOwner<&'hir hir::OwnerInfo<'hir>>)>,
|
||||||
|
|
||||||
generator_kind: Option<hir::GeneratorKind>,
|
generator_kind: Option<hir::GeneratorKind>,
|
||||||
|
|
||||||
|
@ -611,8 +610,8 @@ impl<'a, 'hir> LoweringContext<'a, 'hir> {
|
||||||
self.impl_trait_defs = current_impl_trait_defs;
|
self.impl_trait_defs = current_impl_trait_defs;
|
||||||
self.impl_trait_bounds = current_impl_trait_bounds;
|
self.impl_trait_bounds = current_impl_trait_bounds;
|
||||||
|
|
||||||
let _old = self.children.insert(def_id, hir::MaybeOwner::Owner(info));
|
debug_assert!(self.children.iter().find(|(id, _)| id == &def_id).is_none());
|
||||||
debug_assert!(_old.is_none())
|
self.children.push((def_id, hir::MaybeOwner::Owner(info)));
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Installs the remapping `remap` in scope while `f` is being executed.
|
/// Installs the remapping `remap` in scope while `f` is being executed.
|
||||||
|
@ -719,8 +718,7 @@ impl<'a, 'hir> LoweringContext<'a, 'hir> {
|
||||||
|
|
||||||
assert_ne!(local_id, hir::ItemLocalId::new(0));
|
assert_ne!(local_id, hir::ItemLocalId::new(0));
|
||||||
if let Some(def_id) = self.opt_local_def_id(ast_node_id) {
|
if let Some(def_id) = self.opt_local_def_id(ast_node_id) {
|
||||||
// Do not override a `MaybeOwner::Owner` that may already here.
|
self.children.push((def_id, hir::MaybeOwner::NonOwner(hir_id)));
|
||||||
self.children.entry(def_id).or_insert(hir::MaybeOwner::NonOwner(hir_id));
|
|
||||||
self.local_id_to_def_id.insert(local_id, def_id);
|
self.local_id_to_def_id.insert(local_id, def_id);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue