mirror of
https://github.com/rust-lang/rust.git
synced 2024-11-25 08:13:41 +00:00
Remove defaultness from ImplItem.
This commit is contained in:
parent
686663a49e
commit
710662c8ac
@ -896,9 +896,6 @@ impl<'hir> LoweringContext<'_, 'hir> {
|
||||
AssocItemKind::MacCall(..) => panic!("`TyMac` should have been expanded by now"),
|
||||
};
|
||||
|
||||
// Since `default impl` is not yet implemented, this is always true in impls.
|
||||
let has_value = true;
|
||||
let (defaultness, _) = self.lower_defaultness(i.kind.defaultness(), has_value);
|
||||
let hir_id = self.lower_node_id(i.id);
|
||||
self.lower_attrs(hir_id, &i.attrs);
|
||||
let item = hir::ImplItem {
|
||||
@ -906,7 +903,6 @@ impl<'hir> LoweringContext<'_, 'hir> {
|
||||
ident: self.lower_ident(i.ident),
|
||||
generics,
|
||||
vis: self.lower_visibility(&i.vis),
|
||||
defaultness,
|
||||
kind,
|
||||
span: self.lower_span(i.span),
|
||||
};
|
||||
|
@ -2112,7 +2112,6 @@ pub struct ImplItem<'hir> {
|
||||
pub ident: Ident,
|
||||
pub def_id: LocalDefId,
|
||||
pub vis: Visibility<'hir>,
|
||||
pub defaultness: Defaultness,
|
||||
pub generics: Generics<'hir>,
|
||||
pub kind: ImplItemKind<'hir>,
|
||||
pub span: Span,
|
||||
@ -3304,6 +3303,6 @@ mod size_asserts {
|
||||
|
||||
rustc_data_structures::static_assert_size!(super::Item<'static>, 184);
|
||||
rustc_data_structures::static_assert_size!(super::TraitItem<'static>, 128);
|
||||
rustc_data_structures::static_assert_size!(super::ImplItem<'static>, 152);
|
||||
rustc_data_structures::static_assert_size!(super::ImplItem<'static>, 144);
|
||||
rustc_data_structures::static_assert_size!(super::ForeignItem<'static>, 136);
|
||||
}
|
||||
|
@ -1020,12 +1020,10 @@ pub fn walk_trait_item_ref<'v, V: Visitor<'v>>(visitor: &mut V, trait_item_ref:
|
||||
|
||||
pub fn walk_impl_item<'v, V: Visitor<'v>>(visitor: &mut V, impl_item: &'v ImplItem<'v>) {
|
||||
// N.B., deliberately force a compilation error if/when new fields are added.
|
||||
let ImplItem { def_id: _, ident, ref vis, ref defaultness, ref generics, ref kind, span: _ } =
|
||||
*impl_item;
|
||||
let ImplItem { def_id: _, ident, ref vis, ref generics, ref kind, span: _ } = *impl_item;
|
||||
|
||||
visitor.visit_ident(ident);
|
||||
visitor.visit_vis(vis);
|
||||
visitor.visit_defaultness(defaultness);
|
||||
visitor.visit_generics(generics);
|
||||
match *kind {
|
||||
ImplItemKind::Const(ref ty, body) => {
|
||||
|
@ -164,13 +164,11 @@ impl<HirCtx: crate::HashStableContext> HashStable<HirCtx> for TraitItem<'_> {
|
||||
|
||||
impl<HirCtx: crate::HashStableContext> HashStable<HirCtx> for ImplItem<'_> {
|
||||
fn hash_stable(&self, hcx: &mut HirCtx, hasher: &mut StableHasher) {
|
||||
let ImplItem { def_id: _, ident, ref vis, defaultness, ref generics, ref kind, span } =
|
||||
*self;
|
||||
let ImplItem { def_id: _, ident, ref vis, ref generics, ref kind, span } = *self;
|
||||
|
||||
hcx.hash_hir_item_like(|hcx| {
|
||||
ident.name.hash_stable(hcx, hasher);
|
||||
vis.hash_stable(hcx, hasher);
|
||||
defaultness.hash_stable(hcx, hasher);
|
||||
generics.hash_stable(hcx, hasher);
|
||||
kind.hash_stable(hcx, hasher);
|
||||
span.hash_stable(hcx, hasher);
|
||||
|
@ -923,7 +923,6 @@ impl<'a> State<'a> {
|
||||
self.hardbreak_if_not_bol();
|
||||
self.maybe_print_comment(ii.span.lo());
|
||||
self.print_outer_attributes(self.attrs(ii.hir_id()));
|
||||
self.print_defaultness(ii.defaultness);
|
||||
|
||||
match ii.kind {
|
||||
hir::ImplItemKind::Const(ref ty, expr) => {
|
||||
|
@ -1014,7 +1014,8 @@ impl Clean<Item> for hir::ImplItem<'_> {
|
||||
{
|
||||
m.header.constness = hir::Constness::NotConst;
|
||||
}
|
||||
MethodItem(m, Some(self.defaultness))
|
||||
let defaultness = cx.tcx.associated_item(self.def_id).defaultness;
|
||||
MethodItem(m, Some(defaultness))
|
||||
}
|
||||
hir::ImplItemKind::TyAlias(ref hir_ty) => {
|
||||
let type_ = hir_ty.clean(cx);
|
||||
|
@ -358,9 +358,11 @@ pub trait AddDefaultTrait {
|
||||
|
||||
#[cfg(any(cfail1,cfail4))]
|
||||
impl AddDefaultTrait for Foo {
|
||||
// -------------------------------------------------------------------------------------------
|
||||
// ----------------------------------------------------
|
||||
// -------------------------
|
||||
fn method_name() { }
|
||||
// ----------------------------------------------------
|
||||
// -------------------------
|
||||
fn method_name() { }
|
||||
}
|
||||
|
||||
#[cfg(not(any(cfail1,cfail4)))]
|
||||
@ -369,9 +371,9 @@ impl AddDefaultTrait for Foo {
|
||||
#[rustc_clean(except="hir_owner,hir_owner_nodes", cfg="cfail5")]
|
||||
#[rustc_clean(cfg="cfail6")]
|
||||
impl AddDefaultTrait for Foo {
|
||||
#[rustc_clean(except="hir_owner,hir_owner_nodes,associated_item", cfg="cfail2")]
|
||||
#[rustc_clean(except="associated_item", cfg="cfail2")]
|
||||
#[rustc_clean(cfg="cfail3")]
|
||||
#[rustc_clean(except="hir_owner,hir_owner_nodes,associated_item,optimized_mir", cfg="cfail5")]
|
||||
#[rustc_clean(except="associated_item", cfg="cfail5")]
|
||||
#[rustc_clean(cfg="cfail6")]
|
||||
default fn method_name() { }
|
||||
}
|
||||
|
@ -54,9 +54,6 @@ impl<'tcx> LateLintPass<'tcx> for DeepCodeInspector {
|
||||
),
|
||||
hir::VisibilityKind::Inherited => println!("visibility inherited from outer item"),
|
||||
}
|
||||
if item.defaultness.is_default() {
|
||||
println!("default");
|
||||
}
|
||||
match item.kind {
|
||||
hir::ImplItemKind::Const(_, body_id) => {
|
||||
println!("associated constant");
|
||||
|
Loading…
Reference in New Issue
Block a user