diff options
| author | Jonas Schievink <jonasschievink@gmail.com> | 2020-09-25 19:42:35 +0200 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2020-09-25 19:42:35 +0200 |
| commit | ba44e9fe3455ce2eab75e6c097a1e0180f54f9ba (patch) | |
| tree | 725c7c0aed8ef873c940b04dfae5cd48bdc1571b /compiler | |
| parent | 452aa759b7845ce9ca0a9ee7c26b1c47698e89be (diff) | |
| parent | 438d229b25921e0b1d4b731586cff27a2e79e99f (diff) | |
| download | rust-ba44e9fe3455ce2eab75e6c097a1e0180f54f9ba.tar.gz rust-ba44e9fe3455ce2eab75e6c097a1e0180f54f9ba.zip | |
Rollup merge of #77073 - lcnr:ty-trait-param, r=matthewjasper
dead_code: look at trait impls even if they don't contain items fixes #70225
Diffstat (limited to 'compiler')
| -rw-r--r-- | compiler/rustc_passes/src/dead.rs | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/compiler/rustc_passes/src/dead.rs b/compiler/rustc_passes/src/dead.rs index fe6653e98da..98ded4189cf 100644 --- a/compiler/rustc_passes/src/dead.rs +++ b/compiler/rustc_passes/src/dead.rs @@ -369,7 +369,7 @@ fn has_allow_dead_code_or_lang_attr( // - This is because lang items are always callable from elsewhere. // or // 2) We are not sure to be live or not -// * Implementation of a trait method +// * Implementations of traits and trait methods struct LifeSeeder<'k, 'tcx> { worklist: Vec<hir::HirId>, krate: &'k hir::Crate<'k>, @@ -415,6 +415,9 @@ impl<'v, 'k, 'tcx> ItemLikeVisitor<'v> for LifeSeeder<'k, 'tcx> { } } hir::ItemKind::Impl { ref of_trait, items, .. } => { + if of_trait.is_some() { + self.worklist.push(item.hir_id); + } for impl_item_ref in items { let impl_item = self.krate.impl_item(impl_item_ref.id); if of_trait.is_some() |
