about summary refs log tree commit diff
diff options
context:
space:
mode:
authorDylan MacKenzie <ecstaticmorse@gmail.com>2020-04-19 16:05:59 -0700
committerDylan MacKenzie <ecstaticmorse@gmail.com>2020-04-19 17:50:56 -0700
commite59000265252667c66ed93c85ff21713ac4d172a (patch)
treea86e38e2e3d321e0b83b2e21a17bb0efcae262ef
parent65a985e81e05bef484589fbb45dcee8e8048cda5 (diff)
downloadrust-e59000265252667c66ed93c85ff21713ac4d172a.tar.gz
rust-e59000265252667c66ed93c85ff21713ac4d172a.zip
Exhaustively match on `StatementKind` during const checking
-rw-r--r--src/librustc_mir/transform/check_consts/validation.rs11
1 files changed, 8 insertions, 3 deletions
diff --git a/src/librustc_mir/transform/check_consts/validation.rs b/src/librustc_mir/transform/check_consts/validation.rs
index 19df6e39e4c..67110a3aed4 100644
--- a/src/librustc_mir/transform/check_consts/validation.rs
+++ b/src/librustc_mir/transform/check_consts/validation.rs
@@ -478,15 +478,20 @@ impl Visitor<'tcx> for Validator<'_, 'mir, 'tcx> {
             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 { .. }