about summary refs log tree commit diff
diff options
context:
space:
mode:
authorseiya <r108338@yahoo.co.jp>2020-04-11 22:34:45 +0900
committerseiya <r108338@yahoo.co.jp>2020-04-19 21:57:35 +0900
commitd3f8db6a2f5ae2a4895906f6ed340003affee6d5 (patch)
tree8c4d8dfd921236b7fd5101b71cc799b6763b4db2
parentf742afaca4c5afa3277f7102eac1e7a49048fefe (diff)
downloadrust-d3f8db6a2f5ae2a4895906f6ed340003affee6d5.tar.gz
rust-d3f8db6a2f5ae2a4895906f6ed340003affee6d5.zip
Fix false "never constructed" warnings for `Self::` variant paths
-rw-r--r--src/librustc_passes/dead.rs4
1 files changed, 3 insertions, 1 deletions
diff --git a/src/librustc_passes/dead.rs b/src/librustc_passes/dead.rs
index 830bd255dfc..ac1f3847d96 100644
--- a/src/librustc_passes/dead.rs
+++ b/src/librustc_passes/dead.rs
@@ -255,7 +255,9 @@ impl<'a, 'tcx> Visitor<'tcx> for MarkSymbolVisitor<'a, 'tcx> {
             hir::ExprKind::Field(ref lhs, ..) => {
                 self.handle_field_access(&lhs, expr.hir_id);
             }
-            hir::ExprKind::Struct(_, ref fields, _) => {
+            hir::ExprKind::Struct(ref qpath, ref fields, _) => {
+                let res = self.tables.qpath_res(qpath, expr.hir_id);
+                self.handle_res(res);
                 if let ty::Adt(ref adt, _) = self.tables.expr_ty(expr).kind {
                     self.mark_as_used_if_union(adt, fields);
                 }