about summary refs log tree commit diff
path: root/src/librustc_mir/dataflow
diff options
context:
space:
mode:
authorSantiago Pastorino <spastorino@gmail.com>2019-08-24 20:53:20 -0400
committerSantiago Pastorino <spastorino@gmail.com>2019-09-09 18:16:49 -0300
commite73d189e4e2ad55fcea595a14f9adea0960c65a1 (patch)
treece621cff756536af0695cb5bd0d437e661d71dd3 /src/librustc_mir/dataflow
parentb04e6c734451acc8b97657a906dda535874c82cf (diff)
downloadrust-e73d189e4e2ad55fcea595a14f9adea0960c65a1.tar.gz
rust-e73d189e4e2ad55fcea595a14f9adea0960c65a1.zip
Use slice patterns to match projection base
Diffstat (limited to 'src/librustc_mir/dataflow')
-rw-r--r--src/librustc_mir/dataflow/move_paths/builder.rs3
1 files changed, 1 insertions, 2 deletions
diff --git a/src/librustc_mir/dataflow/move_paths/builder.rs b/src/librustc_mir/dataflow/move_paths/builder.rs
index 1d99470d08b..a4427287c4f 100644
--- a/src/librustc_mir/dataflow/move_paths/builder.rs
+++ b/src/librustc_mir/dataflow/move_paths/builder.rs
@@ -436,8 +436,7 @@ impl<'b, 'a, 'tcx> Gatherer<'b, 'a, 'tcx> {
 
         // Check if we are assigning into a field of a union, if so, lookup the place
         // of the union so it is marked as initialized again.
-        if let [.., ProjectionElem::Field(_, _)] = place.projection {
-            let proj_base = &place.projection[..place.projection.len() - 1];
+        if let [proj_base @ .., ProjectionElem::Field(_, _)] = place.projection {
             if let ty::Adt(def, _) =
                 Place::ty_from(place.base, proj_base, self.builder.body, self.builder.tcx).ty.sty
             {