Skip to content

Commit 67379c4

Browse files
committed
Address misc feedback
1 parent feb8002 commit 67379c4

File tree

3 files changed

+20
-53
lines changed

3 files changed

+20
-53
lines changed

compiler/rustc_passes/src/dead.rs

Lines changed: 19 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
1-
// This implements the dead-code warning pass. It follows crate::reachable
2-
// closely. The idea is that all reachable symbols are live, codes called
3-
// from live codes are live, and everything else is dead.
1+
// This implements the dead-code warning pass.
2+
// All reachable symbols are live, code called from live code is live, code with certain lint
3+
// expectations such as `#[expect(unused)]` and `#[expect(dead_code)]` is live, and everything else
4+
// is dead.
45

56
use hir::def_id::{LocalDefIdMap, LocalDefIdSet};
67
use itertools::Itertools;
@@ -685,7 +686,7 @@ fn live_symbols_and_ignored_derived_traits(
685686
(symbol_visitor.live_symbols, symbol_visitor.ignored_derived_traits)
686687
}
687688

688-
struct DeadVariant {
689+
struct DeadItem {
689690
def_id: LocalDefId,
690691
name: Symbol,
691692
level: lint::Level,
@@ -729,7 +730,7 @@ impl<'tcx> DeadVisitor<'tcx> {
729730
// first local def id.
730731
// Prefer calling `Self.warn_dead_code` or `Self.warn_dead_code_grouped_by_lint_level`
731732
// since those methods group by lint level before calling this method.
732-
fn warn_multiple_dead_codes(
733+
fn lint_at_single_level(
733734
&self,
734735
dead_codes: &[LocalDefId],
735736
participle: &str,
@@ -832,23 +833,23 @@ impl<'tcx> DeadVisitor<'tcx> {
832833
self.tcx.emit_spanned_lint(lint, first_hir_id, MultiSpan::from_spans(spans), diag);
833834
}
834835

835-
fn warn_dead_code_grouped_by_lint_level(
836+
fn warn_multiple(
836837
&self,
837838
def_id: LocalDefId,
838839
participle: &str,
839-
dead_codes: Vec<DeadVariant>,
840+
dead_codes: Vec<DeadItem>,
840841
is_positional: bool,
841842
) {
842843
let mut dead_codes = dead_codes
843844
.iter()
844845
.filter(|v| !v.name.as_str().starts_with('_'))
845-
.collect::<Vec<&DeadVariant>>();
846+
.collect::<Vec<&DeadItem>>();
846847
if dead_codes.is_empty() {
847848
return;
848849
}
849850
dead_codes.sort_by_key(|v| v.level);
850851
for (_, group) in &dead_codes.into_iter().group_by(|v| v.level) {
851-
self.warn_multiple_dead_codes(
852+
self.lint_at_single_level(
852853
&group.map(|v| v.def_id).collect::<Vec<_>>(),
853854
participle,
854855
Some(def_id),
@@ -858,7 +859,7 @@ impl<'tcx> DeadVisitor<'tcx> {
858859
}
859860

860861
fn warn_dead_code(&mut self, id: LocalDefId, participle: &str) {
861-
self.warn_multiple_dead_codes(&[id], participle, None, false);
862+
self.lint_at_single_level(&[id], participle, None, false);
862863
}
863864

864865
fn check_definition(&mut self, def_id: LocalDefId) {
@@ -907,13 +908,13 @@ fn check_mod_deathness(tcx: TyCtxt<'_>, module: LocalDefId) {
907908
let def_id = item.id.owner_id.def_id;
908909
if !visitor.is_live_code(def_id) {
909910
let name = tcx.item_name(def_id.to_def_id());
910-
let hir = tcx.hir().local_def_id_to_hir_id(def_id);
911-
let level = tcx.lint_level_at_node(lint::builtin::DEAD_CODE, hir).0;
911+
let hir_id = tcx.hir().local_def_id_to_hir_id(def_id);
912+
let level = tcx.lint_level_at_node(lint::builtin::DEAD_CODE, hir_id).0;
912913

913-
dead_items.push(DeadVariant { def_id, name, level })
914+
dead_items.push(DeadItem { def_id, name, level })
914915
}
915916
}
916-
visitor.warn_dead_code_grouped_by_lint_level(
917+
visitor.warn_multiple(
917918
item.owner_id.def_id,
918919
"used",
919920
dead_items,
@@ -942,7 +943,7 @@ fn check_mod_deathness(tcx: TyCtxt<'_>, module: LocalDefId) {
942943
// Record to group diagnostics.
943944
let hir_id = tcx.hir().local_def_id_to_hir_id(def_id);
944945
let level = tcx.lint_level_at_node(lint::builtin::DEAD_CODE, hir_id).0;
945-
dead_variants.push(DeadVariant { def_id, name: variant.name, level });
946+
dead_variants.push(DeadItem { def_id, name: variant.name, level });
946947
continue;
947948
}
948949

@@ -967,21 +968,21 @@ fn check_mod_deathness(tcx: TyCtxt<'_>, module: LocalDefId) {
967968
hir_id,
968969
)
969970
.0;
970-
Some(DeadVariant { def_id, name: field.name, level })
971+
Some(DeadItem { def_id, name: field.name, level })
971972
} else {
972973
None
973974
}
974975
})
975976
.collect();
976-
visitor.warn_dead_code_grouped_by_lint_level(
977+
visitor.warn_multiple(
977978
def_id,
978979
"read",
979980
dead_fields,
980981
is_positional,
981982
)
982983
}
983984

984-
visitor.warn_dead_code_grouped_by_lint_level(
985+
visitor.warn_multiple(
985986
item.owner_id.def_id,
986987
"constructed",
987988
dead_variants,

tests/incremental/issue-114416-expect-unused-inside-impl-block.rs

Lines changed: 0 additions & 32 deletions
This file was deleted.

tests/ui/lint/rfc-2383-lint-reason/expect_unused_inside_impl_block.rs

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,5 @@
11
// check-pass
2-
//
3-
// The corresponding incremental compilation test can be found in
4-
// `tests/incremental/issue-114416-expect-unused-inside-impl-block.rs`
2+
// incremental
53

64
#![feature(lint_reasons)]
75
#![warn(unused)]

0 commit comments

Comments
 (0)