From 569f01cef63a76d48bc41087e5edfaab19bce523 Mon Sep 17 00:00:00 2001 From: Simon Vandel Sillesen Date: Sun, 25 Oct 2020 19:48:23 +0100 Subject: [PATCH] pattern match directly on constant --- compiler/rustc_mir/src/transform/const_goto.rs | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/compiler/rustc_mir/src/transform/const_goto.rs b/compiler/rustc_mir/src/transform/const_goto.rs index 5ef80ef43e03b..8cb8031df7858 100644 --- a/compiler/rustc_mir/src/transform/const_goto.rs +++ b/compiler/rustc_mir/src/transform/const_goto.rs @@ -57,8 +57,9 @@ impl<'a, 'tcx> Visitor<'tcx> for ConstGotoOptimizationFinder<'a, 'tcx> { // We only apply this optimization if the last statement is a const assignment let last_statement = self.body.basic_blocks()[location.block].statements.last()?; - if let Some((place, Rvalue::Use(op))) = last_statement.kind.as_assign() { - let _const = op.constant()?; + if let (place, Rvalue::Use(Operand::Constant(_const))) = + last_statement.kind.as_assign()? + { // We found a constant being assigned to `place`. // Now check that the target of this Goto switches on this place. let target_bb = &self.body.basic_blocks()[target];