mirror of
https://github.com/rust-lang/rust.git
synced 2025-02-21 11:23:03 +00:00
librustc_middle: return LocalDefId instead of DefId in opt_local_def_id
This commit is contained in:
parent
bc30e4dd4e
commit
1dc363bce1
@ -59,7 +59,7 @@ use rustc_data_structures::fx::{FxHashMap, FxHashSet};
|
||||
use rustc_errors::{pluralize, struct_span_err};
|
||||
use rustc_errors::{Applicability, DiagnosticBuilder, DiagnosticStyledString};
|
||||
use rustc_hir as hir;
|
||||
use rustc_hir::def_id::DefId;
|
||||
use rustc_hir::def_id::{DefId, LocalDefId};
|
||||
use rustc_hir::Node;
|
||||
use rustc_middle::middle::region;
|
||||
use rustc_middle::ty::error::TypeError;
|
||||
@ -1589,8 +1589,12 @@ impl<'a, 'tcx> InferCtxt<'a, 'tcx> {
|
||||
// it's a actual definition. According to the comments (e.g. in
|
||||
// librustc_typeck/check/compare_method.rs:compare_predicate_entailment) the latter
|
||||
// is relied upon by some other code. This might (or might not) need cleanup.
|
||||
let body_owner_def_id =
|
||||
self.tcx.hir().opt_local_def_id(cause.body_id).unwrap_or_else(|| {
|
||||
let body_owner_def_id = self
|
||||
.tcx
|
||||
.hir()
|
||||
.opt_local_def_id(cause.body_id)
|
||||
.map(LocalDefId::to_def_id)
|
||||
.unwrap_or_else(|| {
|
||||
self.tcx.hir().body_owner_def_id(hir::BodyId { hir_id: cause.body_id })
|
||||
});
|
||||
self.check_and_note_conflicting_crates(diag, terr);
|
||||
|
@ -150,7 +150,7 @@ impl<'hir> Map<'hir> {
|
||||
}
|
||||
|
||||
pub fn def_path_from_hir_id(&self, id: HirId) -> Option<DefPath> {
|
||||
self.opt_local_def_id(id).map(|def_id| self.def_path(def_id.expect_local()))
|
||||
self.opt_local_def_id(id).map(|def_id| self.def_path(def_id))
|
||||
}
|
||||
|
||||
pub fn def_path(&self, def_id: LocalDefId) -> DefPath {
|
||||
@ -175,19 +175,21 @@ impl<'hir> Map<'hir> {
|
||||
// FIXME(eddyb) this function can and should return `LocalDefId`.
|
||||
#[inline]
|
||||
pub fn local_def_id(&self, hir_id: HirId) -> DefId {
|
||||
self.opt_local_def_id(hir_id).unwrap_or_else(|| {
|
||||
bug!(
|
||||
"local_def_id: no entry for `{:?}`, which has a map of `{:?}`",
|
||||
hir_id,
|
||||
self.find_entry(hir_id)
|
||||
)
|
||||
})
|
||||
self.opt_local_def_id(hir_id)
|
||||
.unwrap_or_else(|| {
|
||||
bug!(
|
||||
"local_def_id: no entry for `{:?}`, which has a map of `{:?}`",
|
||||
hir_id,
|
||||
self.find_entry(hir_id)
|
||||
)
|
||||
})
|
||||
.to_def_id()
|
||||
}
|
||||
|
||||
#[inline]
|
||||
pub fn opt_local_def_id(&self, hir_id: HirId) -> Option<DefId> {
|
||||
pub fn opt_local_def_id(&self, hir_id: HirId) -> Option<LocalDefId> {
|
||||
let node_id = self.hir_id_to_node_id(hir_id);
|
||||
Some(self.opt_local_def_id_from_node_id(node_id)?.to_def_id())
|
||||
self.opt_local_def_id_from_node_id(node_id)
|
||||
}
|
||||
|
||||
#[inline]
|
||||
|
@ -14,7 +14,7 @@ use crate::infer::{self, InferCtxt, TyCtxtInferExt};
|
||||
use rustc_data_structures::fx::FxHashMap;
|
||||
use rustc_errors::{pluralize, struct_span_err, Applicability, DiagnosticBuilder};
|
||||
use rustc_hir as hir;
|
||||
use rustc_hir::def_id::{DefId, LOCAL_CRATE};
|
||||
use rustc_hir::def_id::{DefId, LocalDefId, LOCAL_CRATE};
|
||||
use rustc_hir::{Node, QPath, TyKind, WhereBoundPredicate, WherePredicate};
|
||||
use rustc_middle::mir::interpret::ErrorHandled;
|
||||
use rustc_middle::ty::error::ExpectedFound;
|
||||
@ -354,6 +354,7 @@ impl<'a, 'tcx> InferCtxtExt<'tcx> for InferCtxt<'a, 'tcx> {
|
||||
let enclosing_scope_span = tcx.def_span(
|
||||
tcx.hir()
|
||||
.opt_local_def_id(obligation.cause.body_id)
|
||||
.map(LocalDefId::to_def_id)
|
||||
.unwrap_or_else(|| {
|
||||
tcx.hir().body_owner_def_id(hir::BodyId {
|
||||
hir_id: obligation.cause.body_id,
|
||||
|
@ -152,12 +152,15 @@ impl<'tcx> DocContext<'tcx> {
|
||||
self.tcx
|
||||
.hir()
|
||||
.opt_local_def_id(id)
|
||||
.and_then(|def_id| self.tcx.lookup_stability(def_id))
|
||||
.and_then(|def_id| self.tcx.lookup_stability(def_id.to_def_id()))
|
||||
.cloned()
|
||||
}
|
||||
|
||||
pub fn deprecation(&self, id: HirId) -> Option<attr::Deprecation> {
|
||||
self.tcx.hir().opt_local_def_id(id).and_then(|def_id| self.tcx.lookup_deprecation(def_id))
|
||||
self.tcx
|
||||
.hir()
|
||||
.opt_local_def_id(id)
|
||||
.and_then(|def_id| self.tcx.lookup_deprecation(def_id.to_def_id()))
|
||||
}
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user