about summary refs log tree commit diff
diff options
context:
space:
mode:
authorDylan MacKenzie <ecstaticmorse@gmail.com>2019-11-18 15:31:04 -0800
committerDylan MacKenzie <ecstaticmorse@gmail.com>2019-11-21 16:55:13 -0800
commit25122d09ebd27b39830e662a9e7ef3ccfd68dd95 (patch)
tree6dd1adba0b9e9ee213c54d5b7b51bf90bc952b8b
parent5c377f37e4281d87b26c33dfdabf2ec1450e5095 (diff)
downloadrust-25122d09ebd27b39830e662a9e7ef3ccfd68dd95.tar.gz
rust-25122d09ebd27b39830e662a9e7ef3ccfd68dd95.zip
Const-check the discriminant of a `SwitchInt`
-rw-r--r--src/librustc_mir/transform/qualify_min_const_fn.rs8
1 files changed, 5 insertions, 3 deletions
diff --git a/src/librustc_mir/transform/qualify_min_const_fn.rs b/src/librustc_mir/transform/qualify_min_const_fn.rs
index cb6f94adbf0..c5fa9df528c 100644
--- a/src/librustc_mir/transform/qualify_min_const_fn.rs
+++ b/src/librustc_mir/transform/qualify_min_const_fn.rs
@@ -333,9 +333,11 @@ fn check_terminator(
             span,
             "loops and conditional expressions are not stable in const fn".into(),
         )),
-        | TerminatorKind::FalseEdges { .. }
-        | TerminatorKind::SwitchInt { .. }
-        => Ok(()),
+
+        TerminatorKind::FalseEdges { .. } => Ok(()),
+        TerminatorKind::SwitchInt { discr, switch_ty: _, values: _, targets: _ } => {
+            check_operand(tcx, discr, span, def_id, body)
+        }
 
         | TerminatorKind::Abort | TerminatorKind::Unreachable => {
             Err((span, "const fn with unreachable code is not stable".into()))