Skip to content

Commit 9c5da9a

Browse files
authored
Rollup merge of #71026 - seiyab:issue-64362-adhoc, r=varkor
Fix false "never constructed" warnings for `Self::` variant paths Closes #64362 .
2 parents 1b7dec9 + d3f8db6 commit 9c5da9a

File tree

3 files changed

+24
-2
lines changed

3 files changed

+24
-2
lines changed

src/librustc_passes/dead.rs

+3-1
Original file line numberDiff line numberDiff line change
@@ -255,7 +255,9 @@ impl<'a, 'tcx> Visitor<'tcx> for MarkSymbolVisitor<'a, 'tcx> {
255255
hir::ExprKind::Field(ref lhs, ..) => {
256256
self.handle_field_access(&lhs, expr.hir_id);
257257
}
258-
hir::ExprKind::Struct(_, ref fields, _) => {
258+
hir::ExprKind::Struct(ref qpath, ref fields, _) => {
259+
let res = self.tables.qpath_res(qpath, expr.hir_id);
260+
self.handle_res(res);
259261
if let ty::Adt(ref adt, _) = self.tables.expr_ty(expr).kind {
260262
self.mark_as_used_if_union(adt, fields);
261263
}

src/test/ui/lint/dead-code/lint-dead-code-5.rs

+20
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,23 @@ enum Enum2 {
1313
Variant5 { _x: isize }, //~ ERROR: variant is never constructed: `Variant5`
1414
Variant6(isize), //~ ERROR: variant is never constructed: `Variant6`
1515
_Variant7,
16+
Variant8 { _field: bool },
17+
Variant9,
18+
Variant10(usize)
19+
}
20+
21+
impl Enum2 {
22+
fn new_variant8() -> Enum2 {
23+
Self::Variant8 { _field: true }
24+
}
25+
26+
fn new_variant9() -> Enum2 {
27+
Self::Variant9
28+
}
29+
30+
fn new_variant10() -> Enum2 {
31+
Self::Variant10(10)
32+
}
1633
}
1734

1835
enum Enum3 { //~ ERROR: enum is never used
@@ -27,4 +44,7 @@ fn main() {
2744
Enum1::Variant2 => ()
2845
}
2946
let x = Enum2::Variant3(true);
47+
let _ = Enum2::new_variant8();
48+
let _ = Enum2::new_variant9();
49+
let _ = Enum2::new_variant10();
3050
}

src/test/ui/lint/dead-code/lint-dead-code-5.stderr

+1-1
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ LL | Variant6(isize),
2323
| ^^^^^^^^^^^^^^^
2424

2525
error: enum is never used: `Enum3`
26-
--> $DIR/lint-dead-code-5.rs:18:6
26+
--> $DIR/lint-dead-code-5.rs:35:6
2727
|
2828
LL | enum Enum3 {
2929
| ^^^^^

0 commit comments

Comments
 (0)