hir: remove NodeId from AnonConst
This commit is contained in:
parent
d959f443fb
commit
4543fc243e
9 changed files with 21 additions and 23 deletions
|
@ -3811,9 +3811,8 @@ impl<'a> LoweringContext<'a> {
|
||||||
|
|
||||||
fn lower_anon_const(&mut self, c: &AnonConst) -> hir::AnonConst {
|
fn lower_anon_const(&mut self, c: &AnonConst) -> hir::AnonConst {
|
||||||
self.with_new_scopes(|this| {
|
self.with_new_scopes(|this| {
|
||||||
let LoweredNodeId { node_id, hir_id } = this.lower_node_id(c.id);
|
let LoweredNodeId { node_id: _, hir_id } = this.lower_node_id(c.id);
|
||||||
hir::AnonConst {
|
hir::AnonConst {
|
||||||
id: node_id,
|
|
||||||
hir_id,
|
hir_id,
|
||||||
body: this.lower_body(None, |this| this.lower_expr(&c.value)),
|
body: this.lower_body(None, |this| this.lower_expr(&c.value)),
|
||||||
}
|
}
|
||||||
|
|
|
@ -1322,7 +1322,6 @@ impl BodyOwnerKind {
|
||||||
/// explicit discriminant values for enum variants.
|
/// explicit discriminant values for enum variants.
|
||||||
#[derive(Copy, Clone, PartialEq, Eq, RustcEncodable, RustcDecodable, Debug)]
|
#[derive(Copy, Clone, PartialEq, Eq, RustcEncodable, RustcDecodable, Debug)]
|
||||||
pub struct AnonConst {
|
pub struct AnonConst {
|
||||||
pub id: NodeId,
|
|
||||||
pub hir_id: HirId,
|
pub hir_id: HirId,
|
||||||
pub body: BodyId,
|
pub body: BodyId,
|
||||||
}
|
}
|
||||||
|
|
|
@ -546,7 +546,6 @@ impl_stable_hash_for!(enum hir::UnsafeSource {
|
||||||
});
|
});
|
||||||
|
|
||||||
impl_stable_hash_for!(struct hir::AnonConst {
|
impl_stable_hash_for!(struct hir::AnonConst {
|
||||||
id,
|
|
||||||
hir_id,
|
hir_id,
|
||||||
body
|
body
|
||||||
});
|
});
|
||||||
|
|
|
@ -1667,7 +1667,7 @@ impl<'a, 'b, 'tcx> Visitor<'tcx> for EncodeVisitor<'a, 'b, 'tcx> {
|
||||||
intravisit::walk_variant(self, v, g, id);
|
intravisit::walk_variant(self, v, g, id);
|
||||||
|
|
||||||
if let Some(ref discr) = v.node.disr_expr {
|
if let Some(ref discr) = v.node.disr_expr {
|
||||||
let def_id = self.index.tcx.hir().local_def_id(discr.id);
|
let def_id = self.index.tcx.hir().local_def_id_from_hir_id(discr.hir_id);
|
||||||
self.index.record(def_id, IsolatedEncoder::encode_info_for_anon_const, def_id);
|
self.index.record(def_id, IsolatedEncoder::encode_info_for_anon_const, def_id);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1719,7 +1719,7 @@ impl<'a, 'b, 'tcx> IndexBuilder<'a, 'b, 'tcx> {
|
||||||
fn encode_info_for_ty(&mut self, ty: &hir::Ty) {
|
fn encode_info_for_ty(&mut self, ty: &hir::Ty) {
|
||||||
match ty.node {
|
match ty.node {
|
||||||
hir::TyKind::Array(_, ref length) => {
|
hir::TyKind::Array(_, ref length) => {
|
||||||
let def_id = self.tcx.hir().local_def_id(length.id);
|
let def_id = self.tcx.hir().local_def_id_from_hir_id(length.hir_id);
|
||||||
self.record(def_id, IsolatedEncoder::encode_info_for_anon_const, def_id);
|
self.record(def_id, IsolatedEncoder::encode_info_for_anon_const, def_id);
|
||||||
}
|
}
|
||||||
_ => {}
|
_ => {}
|
||||||
|
|
|
@ -560,7 +560,7 @@ fn make_mirror_unadjusted<'a, 'gcx, 'tcx>(cx: &mut Cx<'a, 'gcx, 'tcx>,
|
||||||
|
|
||||||
// Now comes the rote stuff:
|
// Now comes the rote stuff:
|
||||||
hir::ExprKind::Repeat(ref v, ref count) => {
|
hir::ExprKind::Repeat(ref v, ref count) => {
|
||||||
let def_id = cx.tcx.hir().local_def_id(count.id);
|
let def_id = cx.tcx.hir().local_def_id_from_hir_id(count.hir_id);
|
||||||
let substs = InternalSubsts::identity_for_item(cx.tcx.global_tcx(), def_id);
|
let substs = InternalSubsts::identity_for_item(cx.tcx.global_tcx(), def_id);
|
||||||
let instance = ty::Instance::resolve(
|
let instance = ty::Instance::resolve(
|
||||||
cx.tcx.global_tcx(),
|
cx.tcx.global_tcx(),
|
||||||
|
|
|
@ -1798,7 +1798,7 @@ impl<'o, 'gcx: 'tcx, 'tcx> dyn AstConv<'gcx, 'tcx> + 'o {
|
||||||
self.associated_path_to_ty(ast_ty.hir_id, ast_ty.span, ty, def, segment, false).0
|
self.associated_path_to_ty(ast_ty.hir_id, ast_ty.span, ty, def, segment, false).0
|
||||||
}
|
}
|
||||||
hir::TyKind::Array(ref ty, ref length) => {
|
hir::TyKind::Array(ref ty, ref length) => {
|
||||||
let length_def_id = tcx.hir().local_def_id(length.id);
|
let length_def_id = tcx.hir().local_def_id_from_hir_id(length.hir_id);
|
||||||
let substs = InternalSubsts::identity_for_item(tcx, length_def_id);
|
let substs = InternalSubsts::identity_for_item(tcx, length_def_id);
|
||||||
let length = ty::LazyConst::Unevaluated(length_def_id, substs);
|
let length = ty::LazyConst::Unevaluated(length_def_id, substs);
|
||||||
let length = tcx.mk_lazy_const(length);
|
let length = tcx.mk_lazy_const(length);
|
||||||
|
|
|
@ -1870,7 +1870,7 @@ pub fn check_enum<'a, 'tcx>(tcx: TyCtxt<'a, 'tcx, 'tcx>,
|
||||||
|
|
||||||
for v in vs {
|
for v in vs {
|
||||||
if let Some(ref e) = v.node.disr_expr {
|
if let Some(ref e) = v.node.disr_expr {
|
||||||
tcx.typeck_tables_of(tcx.hir().local_def_id(e.id));
|
tcx.typeck_tables_of(tcx.hir().local_def_id_from_hir_id(e.hir_id));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -4552,7 +4552,7 @@ impl<'a, 'gcx, 'tcx> FnCtxt<'a, 'gcx, 'tcx> {
|
||||||
tcx.mk_array(element_ty, args.len() as u64)
|
tcx.mk_array(element_ty, args.len() as u64)
|
||||||
}
|
}
|
||||||
ExprKind::Repeat(ref element, ref count) => {
|
ExprKind::Repeat(ref element, ref count) => {
|
||||||
let count_def_id = tcx.hir().local_def_id(count.id);
|
let count_def_id = tcx.hir().local_def_id_from_hir_id(count.hir_id);
|
||||||
let param_env = ty::ParamEnv::empty();
|
let param_env = ty::ParamEnv::empty();
|
||||||
let substs = InternalSubsts::identity_for_item(tcx.global_tcx(), count_def_id);
|
let substs = InternalSubsts::identity_for_item(tcx.global_tcx(), count_def_id);
|
||||||
let instance = ty::Instance::resolve(
|
let instance = ty::Instance::resolve(
|
||||||
|
|
|
@ -532,7 +532,7 @@ fn convert_enum_variant_types<'a, 'tcx>(
|
||||||
let wrapped_discr = prev_discr.map_or(initial, |d| d.wrap_incr(tcx));
|
let wrapped_discr = prev_discr.map_or(initial, |d| d.wrap_incr(tcx));
|
||||||
prev_discr = Some(
|
prev_discr = Some(
|
||||||
if let Some(ref e) = variant.node.disr_expr {
|
if let Some(ref e) = variant.node.disr_expr {
|
||||||
let expr_did = tcx.hir().local_def_id(e.id);
|
let expr_did = tcx.hir().local_def_id_from_hir_id(e.hir_id);
|
||||||
def.eval_explicit_discr(tcx, expr_did)
|
def.eval_explicit_discr(tcx, expr_did)
|
||||||
} else if let Some(discr) = repr_type.disr_incr(tcx, prev_discr) {
|
} else if let Some(discr) = repr_type.disr_incr(tcx, prev_discr) {
|
||||||
Some(discr)
|
Some(discr)
|
||||||
|
@ -637,7 +637,7 @@ fn adt_def<'a, 'tcx>(tcx: TyCtxt<'a, 'tcx, 'tcx>, def_id: DefId) -> &'tcx ty::Ad
|
||||||
let did = tcx.hir().local_def_id(v.node.data.id());
|
let did = tcx.hir().local_def_id(v.node.data.id());
|
||||||
let discr = if let Some(ref e) = v.node.disr_expr {
|
let discr = if let Some(ref e) = v.node.disr_expr {
|
||||||
distance_from_explicit = 0;
|
distance_from_explicit = 0;
|
||||||
ty::VariantDiscr::Explicit(tcx.hir().local_def_id(e.id))
|
ty::VariantDiscr::Explicit(tcx.hir().local_def_id_from_hir_id(e.hir_id))
|
||||||
} else {
|
} else {
|
||||||
ty::VariantDiscr::Relative(distance_from_explicit)
|
ty::VariantDiscr::Relative(distance_from_explicit)
|
||||||
};
|
};
|
||||||
|
@ -1142,11 +1142,11 @@ fn report_assoc_ty_on_inherent_impl<'a, 'tcx>(tcx: TyCtxt<'a, 'tcx, 'tcx>, span:
|
||||||
fn type_of<'a, 'tcx>(tcx: TyCtxt<'a, 'tcx, 'tcx>, def_id: DefId) -> Ty<'tcx> {
|
fn type_of<'a, 'tcx>(tcx: TyCtxt<'a, 'tcx, 'tcx>, def_id: DefId) -> Ty<'tcx> {
|
||||||
use rustc::hir::*;
|
use rustc::hir::*;
|
||||||
|
|
||||||
let node_id = tcx.hir().as_local_node_id(def_id).unwrap();
|
let hir_id = tcx.hir().as_local_hir_id(def_id).unwrap();
|
||||||
|
|
||||||
let icx = ItemCtxt::new(tcx, def_id);
|
let icx = ItemCtxt::new(tcx, def_id);
|
||||||
|
|
||||||
match tcx.hir().get(node_id) {
|
match tcx.hir().get_by_hir_id(hir_id) {
|
||||||
Node::TraitItem(item) => match item.node {
|
Node::TraitItem(item) => match item.node {
|
||||||
TraitItemKind::Method(..) => {
|
TraitItemKind::Method(..) => {
|
||||||
let substs = InternalSubsts::identity_for_item(tcx, def_id);
|
let substs = InternalSubsts::identity_for_item(tcx, def_id);
|
||||||
|
@ -1166,7 +1166,7 @@ fn type_of<'a, 'tcx>(tcx: TyCtxt<'a, 'tcx, 'tcx>, def_id: DefId) -> Ty<'tcx> {
|
||||||
ImplItemKind::Const(ref ty, _) => icx.to_ty(ty),
|
ImplItemKind::Const(ref ty, _) => icx.to_ty(ty),
|
||||||
ImplItemKind::Existential(_) => {
|
ImplItemKind::Existential(_) => {
|
||||||
if tcx
|
if tcx
|
||||||
.impl_trait_ref(tcx.hir().get_parent_did(node_id))
|
.impl_trait_ref(tcx.hir().get_parent_did_by_hir_id(hir_id))
|
||||||
.is_none()
|
.is_none()
|
||||||
{
|
{
|
||||||
report_assoc_ty_on_inherent_impl(tcx, item.span);
|
report_assoc_ty_on_inherent_impl(tcx, item.span);
|
||||||
|
@ -1176,7 +1176,7 @@ fn type_of<'a, 'tcx>(tcx: TyCtxt<'a, 'tcx, 'tcx>, def_id: DefId) -> Ty<'tcx> {
|
||||||
}
|
}
|
||||||
ImplItemKind::Type(ref ty) => {
|
ImplItemKind::Type(ref ty) => {
|
||||||
if tcx
|
if tcx
|
||||||
.impl_trait_ref(tcx.hir().get_parent_did(node_id))
|
.impl_trait_ref(tcx.hir().get_parent_did_by_hir_id(hir_id))
|
||||||
.is_none()
|
.is_none()
|
||||||
{
|
{
|
||||||
report_assoc_ty_on_inherent_impl(tcx, item.span);
|
report_assoc_ty_on_inherent_impl(tcx, item.span);
|
||||||
|
@ -1259,7 +1259,7 @@ fn type_of<'a, 'tcx>(tcx: TyCtxt<'a, 'tcx, 'tcx>, def_id: DefId) -> Ty<'tcx> {
|
||||||
..
|
..
|
||||||
}) => match *def {
|
}) => match *def {
|
||||||
VariantData::Unit(..) | VariantData::Struct(..) => {
|
VariantData::Unit(..) | VariantData::Struct(..) => {
|
||||||
tcx.type_of(tcx.hir().get_parent_did(node_id))
|
tcx.type_of(tcx.hir().get_parent_did_by_hir_id(hir_id))
|
||||||
}
|
}
|
||||||
VariantData::Tuple(..) => {
|
VariantData::Tuple(..) => {
|
||||||
let substs = InternalSubsts::identity_for_item(tcx, def_id);
|
let substs = InternalSubsts::identity_for_item(tcx, def_id);
|
||||||
|
@ -1274,7 +1274,6 @@ fn type_of<'a, 'tcx>(tcx: TyCtxt<'a, 'tcx, 'tcx>, def_id: DefId) -> Ty<'tcx> {
|
||||||
..
|
..
|
||||||
}) => {
|
}) => {
|
||||||
if gen.is_some() {
|
if gen.is_some() {
|
||||||
let hir_id = tcx.hir().node_to_hir_id(node_id);
|
|
||||||
return tcx.typeck_tables_of(def_id).node_type(hir_id);
|
return tcx.typeck_tables_of(def_id).node_type(hir_id);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1285,7 +1284,9 @@ fn type_of<'a, 'tcx>(tcx: TyCtxt<'a, 'tcx, 'tcx>, def_id: DefId) -> Ty<'tcx> {
|
||||||
tcx.mk_closure(def_id, substs)
|
tcx.mk_closure(def_id, substs)
|
||||||
}
|
}
|
||||||
|
|
||||||
Node::AnonConst(_) => match tcx.hir().get(tcx.hir().get_parent_node(node_id)) {
|
Node::AnonConst(_) => match tcx.hir().get_by_hir_id(
|
||||||
|
tcx.hir().get_parent_node_by_hir_id(hir_id))
|
||||||
|
{
|
||||||
Node::Ty(&hir::Ty {
|
Node::Ty(&hir::Ty {
|
||||||
node: hir::TyKind::Array(_, ref constant),
|
node: hir::TyKind::Array(_, ref constant),
|
||||||
..
|
..
|
||||||
|
@ -1297,7 +1298,7 @@ fn type_of<'a, 'tcx>(tcx: TyCtxt<'a, 'tcx, 'tcx>, def_id: DefId) -> Ty<'tcx> {
|
||||||
| Node::Expr(&hir::Expr {
|
| Node::Expr(&hir::Expr {
|
||||||
node: ExprKind::Repeat(_, ref constant),
|
node: ExprKind::Repeat(_, ref constant),
|
||||||
..
|
..
|
||||||
}) if constant.id == node_id =>
|
}) if constant.hir_id == hir_id =>
|
||||||
{
|
{
|
||||||
tcx.types.usize
|
tcx.types.usize
|
||||||
}
|
}
|
||||||
|
@ -1309,9 +1310,9 @@ fn type_of<'a, 'tcx>(tcx: TyCtxt<'a, 'tcx, 'tcx>, def_id: DefId) -> Ty<'tcx> {
|
||||||
..
|
..
|
||||||
},
|
},
|
||||||
..
|
..
|
||||||
}) if e.id == node_id =>
|
}) if e.hir_id == hir_id =>
|
||||||
{
|
{
|
||||||
tcx.adt_def(tcx.hir().get_parent_did(node_id))
|
tcx.adt_def(tcx.hir().get_parent_did_by_hir_id(hir_id))
|
||||||
.repr
|
.repr
|
||||||
.discr_type()
|
.discr_type()
|
||||||
.to_ty(tcx)
|
.to_ty(tcx)
|
||||||
|
|
|
@ -2531,7 +2531,7 @@ impl Clean<Type> for hir::Ty {
|
||||||
}
|
}
|
||||||
TyKind::Slice(ref ty) => Slice(box ty.clean(cx)),
|
TyKind::Slice(ref ty) => Slice(box ty.clean(cx)),
|
||||||
TyKind::Array(ref ty, ref length) => {
|
TyKind::Array(ref ty, ref length) => {
|
||||||
let def_id = cx.tcx.hir().local_def_id(length.id);
|
let def_id = cx.tcx.hir().local_def_id_from_hir_id(length.hir_id);
|
||||||
let param_env = cx.tcx.param_env(def_id);
|
let param_env = cx.tcx.param_env(def_id);
|
||||||
let substs = InternalSubsts::identity_for_item(cx.tcx, def_id);
|
let substs = InternalSubsts::identity_for_item(cx.tcx, def_id);
|
||||||
let cid = GlobalId {
|
let cid = GlobalId {
|
||||||
|
|
Loading…
Reference in a new issue