diff options
| author | Dylan MacKenzie <ecstaticmorse@gmail.com> | 2020-04-29 10:51:20 -0700 |
|---|---|---|
| committer | Dylan MacKenzie <ecstaticmorse@gmail.com> | 2020-04-29 10:53:28 -0700 |
| commit | a1aff18689470d733c5d9bdf1982a5ac3d4eb566 (patch) | |
| tree | 55e28d6226c13fa0d0490168a1051fc2da315bb2 | |
| parent | d7afaa7247cc81e0cca7aa438aa1e1672328c0a2 (diff) | |
| download | rust-a1aff18689470d733c5d9bdf1982a5ac3d4eb566.tar.gz rust-a1aff18689470d733c5d9bdf1982a5ac3d4eb566.zip | |
Allow `Unreachable` terminators unconditionally
| -rw-r--r-- | src/librustc_mir/transform/qualify_min_const_fn.rs | 10 |
1 files changed, 3 insertions, 7 deletions
diff --git a/src/librustc_mir/transform/qualify_min_const_fn.rs b/src/librustc_mir/transform/qualify_min_const_fn.rs index a7217369bab..c9981b18f28 100644 --- a/src/librustc_mir/transform/qualify_min_const_fn.rs +++ b/src/librustc_mir/transform/qualify_min_const_fn.rs @@ -344,7 +344,8 @@ fn check_terminator( | TerminatorKind::FalseUnwind { .. } | TerminatorKind::Goto { .. } | TerminatorKind::Return - | TerminatorKind::Resume => Ok(()), + | TerminatorKind::Resume + | TerminatorKind::Unreachable => Ok(()), TerminatorKind::Drop { location, .. } => check_place(tcx, *location, span, def_id, body), TerminatorKind::DropAndReplace { location, value, .. } => { @@ -360,12 +361,7 @@ fn check_terminator( check_operand(tcx, discr, span, def_id, body) } - // FIXME(ecstaticmorse): We probably want to allow `Unreachable` unconditionally. - TerminatorKind::Unreachable if feature_allowed(tcx, def_id, sym::const_if_match) => Ok(()), - - TerminatorKind::Abort | TerminatorKind::Unreachable => { - Err((span, "const fn with unreachable code is not stable".into())) - } + TerminatorKind::Abort => Err((span, "abort is not stable in const fn".into())), TerminatorKind::GeneratorDrop | TerminatorKind::Yield { .. } => { Err((span, "const fn generators are unstable".into())) } |
