Rollup merge of #71092 - marmeladema:dummy-hir-id-removal, r=eddyb
Remove some usage of `DUMMY_HIR_ID`
This commit is contained in:
commit
9de2a792fb
@ -191,7 +191,7 @@ fn msg_span_from_early_bound_and_free_regions(
|
|||||||
let sm = tcx.sess.source_map();
|
let sm = tcx.sess.source_map();
|
||||||
|
|
||||||
let scope = region.free_region_binding_scope(tcx);
|
let scope = region.free_region_binding_scope(tcx);
|
||||||
let node = tcx.hir().as_local_hir_id(scope).unwrap_or(hir::DUMMY_HIR_ID);
|
let node = tcx.hir().as_local_hir_id(scope).unwrap();
|
||||||
let tag = match tcx.hir().find(node) {
|
let tag = match tcx.hir().find(node) {
|
||||||
Some(Node::Block(_)) | Some(Node::Expr(_)) => "body",
|
Some(Node::Block(_)) | Some(Node::Expr(_)) => "body",
|
||||||
Some(Node::Item(it)) => item_scope_tag(&it),
|
Some(Node::Item(it)) => item_scope_tag(&it),
|
||||||
|
@ -1354,7 +1354,7 @@ declare_lint! {
|
|||||||
}
|
}
|
||||||
|
|
||||||
pub struct UnnameableTestItems {
|
pub struct UnnameableTestItems {
|
||||||
boundary: hir::HirId, // HirId of the item under which things are not nameable
|
boundary: Option<hir::HirId>, // HirId of the item under which things are not nameable
|
||||||
items_nameable: bool,
|
items_nameable: bool,
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1362,7 +1362,7 @@ impl_lint_pass!(UnnameableTestItems => [UNNAMEABLE_TEST_ITEMS]);
|
|||||||
|
|
||||||
impl UnnameableTestItems {
|
impl UnnameableTestItems {
|
||||||
pub fn new() -> Self {
|
pub fn new() -> Self {
|
||||||
Self { boundary: hir::DUMMY_HIR_ID, items_nameable: true }
|
Self { boundary: None, items_nameable: true }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1372,7 +1372,7 @@ impl<'a, 'tcx> LateLintPass<'a, 'tcx> for UnnameableTestItems {
|
|||||||
if let hir::ItemKind::Mod(..) = it.kind {
|
if let hir::ItemKind::Mod(..) = it.kind {
|
||||||
} else {
|
} else {
|
||||||
self.items_nameable = false;
|
self.items_nameable = false;
|
||||||
self.boundary = it.hir_id;
|
self.boundary = Some(it.hir_id);
|
||||||
}
|
}
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@ -1385,7 +1385,7 @@ impl<'a, 'tcx> LateLintPass<'a, 'tcx> for UnnameableTestItems {
|
|||||||
}
|
}
|
||||||
|
|
||||||
fn check_item_post(&mut self, _cx: &LateContext<'_, '_>, it: &hir::Item<'_>) {
|
fn check_item_post(&mut self, _cx: &LateContext<'_, '_>, it: &hir::Item<'_>) {
|
||||||
if !self.items_nameable && self.boundary == it.hir_id {
|
if !self.items_nameable && self.boundary == Some(it.hir_id) {
|
||||||
self.items_nameable = true;
|
self.items_nameable = true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -43,14 +43,14 @@ declare_lint! {
|
|||||||
#[derive(Copy, Clone)]
|
#[derive(Copy, Clone)]
|
||||||
pub struct TypeLimits {
|
pub struct TypeLimits {
|
||||||
/// Id of the last visited negated expression
|
/// Id of the last visited negated expression
|
||||||
negated_expr_id: hir::HirId,
|
negated_expr_id: Option<hir::HirId>,
|
||||||
}
|
}
|
||||||
|
|
||||||
impl_lint_pass!(TypeLimits => [UNUSED_COMPARISONS, OVERFLOWING_LITERALS]);
|
impl_lint_pass!(TypeLimits => [UNUSED_COMPARISONS, OVERFLOWING_LITERALS]);
|
||||||
|
|
||||||
impl TypeLimits {
|
impl TypeLimits {
|
||||||
pub fn new() -> TypeLimits {
|
pub fn new() -> TypeLimits {
|
||||||
TypeLimits { negated_expr_id: hir::DUMMY_HIR_ID }
|
TypeLimits { negated_expr_id: None }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -244,7 +244,7 @@ fn lint_int_literal<'a, 'tcx>(
|
|||||||
let int_type = t.normalize(cx.sess().target.ptr_width);
|
let int_type = t.normalize(cx.sess().target.ptr_width);
|
||||||
let (min, max) = int_ty_range(int_type);
|
let (min, max) = int_ty_range(int_type);
|
||||||
let max = max as u128;
|
let max = max as u128;
|
||||||
let negative = type_limits.negated_expr_id == e.hir_id;
|
let negative = type_limits.negated_expr_id == Some(e.hir_id);
|
||||||
|
|
||||||
// Detect literal value out of range [min, max] inclusive
|
// Detect literal value out of range [min, max] inclusive
|
||||||
// avoiding use of -min to prevent overflow/panic
|
// avoiding use of -min to prevent overflow/panic
|
||||||
@ -397,8 +397,8 @@ impl<'a, 'tcx> LateLintPass<'a, 'tcx> for TypeLimits {
|
|||||||
match e.kind {
|
match e.kind {
|
||||||
hir::ExprKind::Unary(hir::UnOp::UnNeg, ref expr) => {
|
hir::ExprKind::Unary(hir::UnOp::UnNeg, ref expr) => {
|
||||||
// propagate negation, if the negation itself isn't negated
|
// propagate negation, if the negation itself isn't negated
|
||||||
if self.negated_expr_id != e.hir_id {
|
if self.negated_expr_id != Some(e.hir_id) {
|
||||||
self.negated_expr_id = expr.hir_id;
|
self.negated_expr_id = Some(expr.hir_id);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
hir::ExprKind::Binary(binop, ref l, ref r) => {
|
hir::ExprKind::Binary(binop, ref l, ref r) => {
|
||||||
|
@ -1012,7 +1012,7 @@ impl DefIdVisitor<'tcx> for ReachEverythingInTheInterfaceVisitor<'_, 'tcx> {
|
|||||||
struct NamePrivacyVisitor<'a, 'tcx> {
|
struct NamePrivacyVisitor<'a, 'tcx> {
|
||||||
tcx: TyCtxt<'tcx>,
|
tcx: TyCtxt<'tcx>,
|
||||||
tables: &'a ty::TypeckTables<'tcx>,
|
tables: &'a ty::TypeckTables<'tcx>,
|
||||||
current_item: hir::HirId,
|
current_item: Option<hir::HirId>,
|
||||||
empty_tables: &'a ty::TypeckTables<'tcx>,
|
empty_tables: &'a ty::TypeckTables<'tcx>,
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1028,7 +1028,7 @@ impl<'a, 'tcx> NamePrivacyVisitor<'a, 'tcx> {
|
|||||||
) {
|
) {
|
||||||
// definition of the field
|
// definition of the field
|
||||||
let ident = Ident::new(kw::Invalid, use_ctxt);
|
let ident = Ident::new(kw::Invalid, use_ctxt);
|
||||||
let current_hir = self.current_item;
|
let current_hir = self.current_item.unwrap();
|
||||||
let def_id = self.tcx.adjust_ident_and_get_scope(ident, def.did, current_hir).1;
|
let def_id = self.tcx.adjust_ident_and_get_scope(ident, def.did, current_hir).1;
|
||||||
if !def.is_enum() && !field.vis.is_accessible_from(def_id, self.tcx) {
|
if !def.is_enum() && !field.vis.is_accessible_from(def_id, self.tcx) {
|
||||||
let label = if in_update_syntax {
|
let label = if in_update_syntax {
|
||||||
@ -1074,7 +1074,7 @@ impl<'a, 'tcx> Visitor<'tcx> for NamePrivacyVisitor<'a, 'tcx> {
|
|||||||
}
|
}
|
||||||
|
|
||||||
fn visit_item(&mut self, item: &'tcx hir::Item<'tcx>) {
|
fn visit_item(&mut self, item: &'tcx hir::Item<'tcx>) {
|
||||||
let orig_current_item = mem::replace(&mut self.current_item, item.hir_id);
|
let orig_current_item = mem::replace(&mut self.current_item, Some(item.hir_id));
|
||||||
let orig_tables =
|
let orig_tables =
|
||||||
mem::replace(&mut self.tables, item_tables(self.tcx, item.hir_id, self.empty_tables));
|
mem::replace(&mut self.tables, item_tables(self.tcx, item.hir_id, self.empty_tables));
|
||||||
intravisit::walk_item(self, item);
|
intravisit::walk_item(self, item);
|
||||||
@ -2059,7 +2059,7 @@ fn check_mod_privacy(tcx: TyCtxt<'_>, module_def_id: DefId) {
|
|||||||
let mut visitor = NamePrivacyVisitor {
|
let mut visitor = NamePrivacyVisitor {
|
||||||
tcx,
|
tcx,
|
||||||
tables: &empty_tables,
|
tables: &empty_tables,
|
||||||
current_item: hir::DUMMY_HIR_ID,
|
current_item: None,
|
||||||
empty_tables: &empty_tables,
|
empty_tables: &empty_tables,
|
||||||
};
|
};
|
||||||
let (module, span, hir_id) = tcx.hir().get_module(module_def_id);
|
let (module, span, hir_id) = tcx.hir().get_module(module_def_id);
|
||||||
|
@ -62,7 +62,7 @@ fn compute_implied_outlives_bounds<'tcx>(
|
|||||||
// unresolved inference variables here anyway, but there might be
|
// unresolved inference variables here anyway, but there might be
|
||||||
// during typeck under some circumstances.)
|
// during typeck under some circumstances.)
|
||||||
let obligations =
|
let obligations =
|
||||||
wf::obligations(infcx, param_env, hir::DUMMY_HIR_ID, ty, DUMMY_SP).unwrap_or(vec![]);
|
wf::obligations(infcx, param_env, hir::CRATE_HIR_ID, ty, DUMMY_SP).unwrap_or(vec![]);
|
||||||
|
|
||||||
// N.B., all of these predicates *ought* to be easily proven
|
// N.B., all of these predicates *ought* to be easily proven
|
||||||
// true. In fact, their correctness is (mostly) implied by
|
// true. In fact, their correctness is (mostly) implied by
|
||||||
|
@ -265,7 +265,7 @@ fn param_env(tcx: TyCtxt<'_>, def_id: DefId) -> ty::ParamEnv<'_> {
|
|||||||
let unnormalized_env =
|
let unnormalized_env =
|
||||||
ty::ParamEnv::new(tcx.intern_predicates(&predicates), traits::Reveal::UserFacing, None);
|
ty::ParamEnv::new(tcx.intern_predicates(&predicates), traits::Reveal::UserFacing, None);
|
||||||
|
|
||||||
let body_id = tcx.hir().as_local_hir_id(def_id).map_or(hir::DUMMY_HIR_ID, |id| {
|
let body_id = tcx.hir().as_local_hir_id(def_id).map_or(hir::CRATE_HIR_ID, |id| {
|
||||||
tcx.hir().maybe_body_owned_by(id).map_or(id, |body| body.hir_id)
|
tcx.hir().maybe_body_owned_by(id).map_or(id, |body| body.hir_id)
|
||||||
});
|
});
|
||||||
let cause = traits::ObligationCause::misc(tcx.def_span(def_id), body_id);
|
let cause = traits::ObligationCause::misc(tcx.def_span(def_id), body_id);
|
||||||
|
@ -217,14 +217,10 @@ impl<'a, 'tcx> FnCtxt<'a, 'tcx> {
|
|||||||
span: Span,
|
span: Span,
|
||||||
expected: Ty<'tcx>,
|
expected: Ty<'tcx>,
|
||||||
checked_ty: Ty<'tcx>,
|
checked_ty: Ty<'tcx>,
|
||||||
|
hir_id: hir::HirId,
|
||||||
) -> Vec<AssocItem> {
|
) -> Vec<AssocItem> {
|
||||||
let mut methods = self.probe_for_return_type(
|
let mut methods =
|
||||||
span,
|
self.probe_for_return_type(span, probe::Mode::MethodCall, expected, checked_ty, hir_id);
|
||||||
probe::Mode::MethodCall,
|
|
||||||
expected,
|
|
||||||
checked_ty,
|
|
||||||
hir::DUMMY_HIR_ID,
|
|
||||||
);
|
|
||||||
methods.retain(|m| {
|
methods.retain(|m| {
|
||||||
self.has_no_input_arg(m)
|
self.has_no_input_arg(m)
|
||||||
&& self
|
&& self
|
||||||
|
@ -452,7 +452,7 @@ fn method_autoderef_steps<'tcx>(
|
|||||||
tcx.infer_ctxt().enter_with_canonical(DUMMY_SP, &goal, |ref infcx, goal, inference_vars| {
|
tcx.infer_ctxt().enter_with_canonical(DUMMY_SP, &goal, |ref infcx, goal, inference_vars| {
|
||||||
let ParamEnvAnd { param_env, value: self_ty } = goal;
|
let ParamEnvAnd { param_env, value: self_ty } = goal;
|
||||||
|
|
||||||
let mut autoderef = Autoderef::new(infcx, param_env, hir::DUMMY_HIR_ID, DUMMY_SP, self_ty)
|
let mut autoderef = Autoderef::new(infcx, param_env, hir::CRATE_HIR_ID, DUMMY_SP, self_ty)
|
||||||
.include_raw_pointers()
|
.include_raw_pointers()
|
||||||
.silence_errors();
|
.silence_errors();
|
||||||
let mut reached_raw_pointer = false;
|
let mut reached_raw_pointer = false;
|
||||||
@ -1512,7 +1512,6 @@ impl<'a, 'tcx> ProbeContext<'a, 'tcx> {
|
|||||||
);
|
);
|
||||||
pcx.allow_similar_names = true;
|
pcx.allow_similar_names = true;
|
||||||
pcx.assemble_inherent_candidates();
|
pcx.assemble_inherent_candidates();
|
||||||
pcx.assemble_extension_candidates_for_traits_in_scope(hir::DUMMY_HIR_ID)?;
|
|
||||||
|
|
||||||
let method_names = pcx.candidate_method_names();
|
let method_names = pcx.candidate_method_names();
|
||||||
pcx.allow_similar_names = false;
|
pcx.allow_similar_names = false;
|
||||||
@ -1522,10 +1521,7 @@ impl<'a, 'tcx> ProbeContext<'a, 'tcx> {
|
|||||||
pcx.reset();
|
pcx.reset();
|
||||||
pcx.method_name = Some(method_name);
|
pcx.method_name = Some(method_name);
|
||||||
pcx.assemble_inherent_candidates();
|
pcx.assemble_inherent_candidates();
|
||||||
pcx.assemble_extension_candidates_for_traits_in_scope(hir::DUMMY_HIR_ID)
|
pcx.pick_core().and_then(|pick| pick.ok()).map(|pick| pick.item)
|
||||||
.map_or(None, |_| {
|
|
||||||
pcx.pick_core().and_then(|pick| pick.ok()).map(|pick| pick.item)
|
|
||||||
})
|
|
||||||
})
|
})
|
||||||
.collect();
|
.collect();
|
||||||
|
|
||||||
|
@ -4981,7 +4981,7 @@ impl<'a, 'tcx> FnCtxt<'a, 'tcx> {
|
|||||||
} else if !self.check_for_cast(err, expr, found, expected) {
|
} else if !self.check_for_cast(err, expr, found, expected) {
|
||||||
let is_struct_pat_shorthand_field =
|
let is_struct_pat_shorthand_field =
|
||||||
self.is_hir_id_from_struct_pattern_shorthand_field(expr.hir_id, expr.span);
|
self.is_hir_id_from_struct_pattern_shorthand_field(expr.hir_id, expr.span);
|
||||||
let methods = self.get_conversion_methods(expr.span, expected, found);
|
let methods = self.get_conversion_methods(expr.span, expected, found, expr.hir_id);
|
||||||
if let Ok(expr_text) = self.sess().source_map().span_to_snippet(expr.span) {
|
if let Ok(expr_text) = self.sess().source_map().span_to_snippet(expr.span) {
|
||||||
let mut suggestions = iter::repeat(&expr_text)
|
let mut suggestions = iter::repeat(&expr_text)
|
||||||
.zip(methods.iter())
|
.zip(methods.iter())
|
||||||
|
Loading…
Reference in New Issue
Block a user