From e59000265252667c66ed93c85ff21713ac4d172a Mon Sep 17 00:00:00 2001 From: Dylan MacKenzie Date: Sun, 19 Apr 2020 16:05:59 -0700 Subject: [PATCH] Exhaustively match on `StatementKind` during const checking --- src/librustc_mir/transform/check_consts/validation.rs | 11 ++++++++--- 1 file 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 19df6e39e4c2..67110a3aed46 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 { .. }