]> git.lizzy.rs Git - rust.git/commitdiff
Exhaustively match on `StatementKind` during const checking
authorDylan MacKenzie <ecstaticmorse@gmail.com>
Sun, 19 Apr 2020 23:05:59 +0000 (16:05 -0700)
committerDylan MacKenzie <ecstaticmorse@gmail.com>
Mon, 20 Apr 2020 00:50:56 +0000 (17:50 -0700)
src/librustc_mir/transform/check_consts/validation.rs

index 19df6e39e4c2421d177583e40027b51800237364..67110a3aed46d652d8824865e89abd6edd06270e 100644 (file)
@@ -478,15 +478,20 @@ fn visit_statement(&mut self, statement: &Statement<'tcx>, location: Location) {
             StatementKind::Assign(..) | StatementKind::SetDiscriminant { .. } => {
                 self.super_statement(statement, location);
             }
-            StatementKind::FakeRead(FakeReadCause::ForMatchedPlace, _) => {
+
+            StatementKind::FakeRead(
+                FakeReadCause::ForMatchedPlace
+                | FakeReadCause::ForMatchGuard
+                | FakeReadCause::ForGuardBinding,
+                _,
+            ) => {
                 self.check_op(ops::IfOrMatch);
             }
             StatementKind::LlvmInlineAsm { .. } => {
                 self.check_op(ops::InlineAsm);
             }
 
-            // FIXME(eddyb) should these really do nothing?
-            StatementKind::FakeRead(..)
+            StatementKind::FakeRead(FakeReadCause::ForLet | FakeReadCause::ForIndex, _)
             | StatementKind::StorageLive(_)
             | StatementKind::StorageDead(_)
             | StatementKind::Retag { .. }