diff options
| author | Dylan MacKenzie <ecstaticmorse@gmail.com> | 2020-04-19 16:05:59 -0700 |
|---|---|---|
| committer | Dylan MacKenzie <ecstaticmorse@gmail.com> | 2020-04-19 17:50:56 -0700 |
| commit | e59000265252667c66ed93c85ff21713ac4d172a (patch) | |
| tree | a86e38e2e3d321e0b83b2e21a17bb0efcae262ef | |
| parent | 65a985e81e05bef484589fbb45dcee8e8048cda5 (diff) | |
| download | rust-e59000265252667c66ed93c85ff21713ac4d172a.tar.gz rust-e59000265252667c66ed93c85ff21713ac4d172a.zip | |
Exhaustively match on `StatementKind` during const checking
| -rw-r--r-- | src/librustc_mir/transform/check_consts/validation.rs | 11 |
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 { .. } |
