diff options
| author | Dylan MacKenzie <ecstaticmorse@gmail.com> | 2019-11-18 15:31:04 -0800 |
|---|---|---|
| committer | Dylan MacKenzie <ecstaticmorse@gmail.com> | 2019-11-21 16:55:13 -0800 |
| commit | 25122d09ebd27b39830e662a9e7ef3ccfd68dd95 (patch) | |
| tree | 6dd1adba0b9e9ee213c54d5b7b51bf90bc952b8b | |
| parent | 5c377f37e4281d87b26c33dfdabf2ec1450e5095 (diff) | |
| download | rust-25122d09ebd27b39830e662a9e7ef3ccfd68dd95.tar.gz rust-25122d09ebd27b39830e662a9e7ef3ccfd68dd95.zip | |
Const-check the discriminant of a `SwitchInt`
| -rw-r--r-- | src/librustc_mir/transform/qualify_min_const_fn.rs | 8 |
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())) |
