diff options
| author | Yuki Okushi <jtitor@2k36.org> | 2022-02-09 14:12:22 +0900 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2022-02-09 14:12:22 +0900 |
| commit | e5ac08779b8cca9c25baaaec3335cacd1c2057ab (patch) | |
| tree | 10e1e933a3d63f4aa824e1b523b225fa1ddd57ad | |
| parent | 56094651b8d07e672a32b2a91206f922c71ed41d (diff) | |
| parent | 710662c8ac88d18ff252718012a69ff96b5343e8 (diff) | |
| download | rust-e5ac08779b8cca9c25baaaec3335cacd1c2057ab.tar.gz rust-e5ac08779b8cca9c25baaaec3335cacd1c2057ab.zip | |
Rollup merge of #93746 - cjgillot:nodefii, r=nikomatsakis
Remove defaultness from ImplItem. This information is not really used anywhere, except HIR pretty-printing. This makes ImplItem and TraitItem more similar.
| -rw-r--r-- | compiler/rustc_ast_lowering/src/item.rs | 4 | ||||
| -rw-r--r-- | compiler/rustc_hir/src/hir.rs | 3 | ||||
| -rw-r--r-- | compiler/rustc_hir/src/intravisit.rs | 4 | ||||
| -rw-r--r-- | compiler/rustc_hir/src/stable_hash_impls.rs | 4 | ||||
| -rw-r--r-- | compiler/rustc_hir_pretty/src/lib.rs | 1 | ||||
| -rw-r--r-- | src/librustdoc/clean/mod.rs | 3 | ||||
| -rw-r--r-- | src/test/incremental/hashes/trait_impls.rs | 10 | ||||
| -rw-r--r-- | src/tools/clippy/clippy_lints/src/utils/inspector.rs | 3 |
8 files changed, 11 insertions, 21 deletions
diff --git a/compiler/rustc_ast_lowering/src/item.rs b/compiler/rustc_ast_lowering/src/item.rs index cacc36b616a..f48cf212a98 100644 --- a/compiler/rustc_ast_lowering/src/item.rs +++ b/compiler/rustc_ast_lowering/src/item.rs @@ -894,9 +894,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 { @@ -904,7 +901,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), }; diff --git a/compiler/rustc_hir/src/hir.rs b/compiler/rustc_hir/src/hir.rs index 43900ba8899..f21f17439a4 100644 --- a/compiler/rustc_hir/src/hir.rs +++ b/compiler/rustc_hir/src/hir.rs @@ -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, @@ -3310,6 +3309,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); } diff --git a/compiler/rustc_hir/src/intravisit.rs b/compiler/rustc_hir/src/intravisit.rs index 1d10e79d300..9811b0cd891 100644 --- a/compiler/rustc_hir/src/intravisit.rs +++ b/compiler/rustc_hir/src/intravisit.rs @@ -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) => { diff --git a/compiler/rustc_hir/src/stable_hash_impls.rs b/compiler/rustc_hir/src/stable_hash_impls.rs index b15054ae6d6..7204efc4224 100644 --- a/compiler/rustc_hir/src/stable_hash_impls.rs +++ b/compiler/rustc_hir/src/stable_hash_impls.rs @@ -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); diff --git a/compiler/rustc_hir_pretty/src/lib.rs b/compiler/rustc_hir_pretty/src/lib.rs index 13008a83379..8e45b636f47 100644 --- a/compiler/rustc_hir_pretty/src/lib.rs +++ b/compiler/rustc_hir_pretty/src/lib.rs @@ -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) => { diff --git a/src/librustdoc/clean/mod.rs b/src/librustdoc/clean/mod.rs index 66cbf884a02..521a88f9beb 100644 --- a/src/librustdoc/clean/mod.rs +++ b/src/librustdoc/clean/mod.rs @@ -1015,7 +1015,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); diff --git a/src/test/incremental/hashes/trait_impls.rs b/src/test/incremental/hashes/trait_impls.rs index 75c93b73f85..2fb991b60ef 100644 --- a/src/test/incremental/hashes/trait_impls.rs +++ b/src/test/incremental/hashes/trait_impls.rs @@ -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() { } } diff --git a/src/tools/clippy/clippy_lints/src/utils/inspector.rs b/src/tools/clippy/clippy_lints/src/utils/inspector.rs index b58325ac73e..86911483137 100644 --- a/src/tools/clippy/clippy_lints/src/utils/inspector.rs +++ b/src/tools/clippy/clippy_lints/src/utils/inspector.rs @@ -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"); |
