diff options
| author | bors <bors@rust-lang.org> | 2018-11-21 23:24:15 +0000 |
|---|---|---|
| committer | bors <bors@rust-lang.org> | 2018-11-21 23:24:15 +0000 |
| commit | 6612100de547446f20aa51f5887a8b769078b0fe (patch) | |
| tree | b4313ec2f04091a752c4961f8304bb639f260ad0 /src | |
| parent | 0b9f19dff1347e29bf4362ab5a8fab84b43023b5 (diff) | |
| parent | 8ee9711a6c00a0994f7fc69586273c86ab45e396 (diff) | |
Auto merge of #56065 - oli-obk:min_const_fn_loop_ice, r=davidtwco
Replace the ICEing on const fn loops with an error fixes #56035
Diffstat (limited to 'src')
| -rw-r--r-- | src/librustc_mir/transform/qualify_min_const_fn.rs | 8 | ||||
| -rw-r--r-- | src/test/ui/consts/min_const_fn/loop_ice.rs | 5 | ||||
| -rw-r--r-- | src/test/ui/consts/min_const_fn/loop_ice.stderr | 8 |
3 files changed, 16 insertions, 5 deletions
diff --git a/src/librustc_mir/transform/qualify_min_const_fn.rs b/src/librustc_mir/transform/qualify_min_const_fn.rs index ed13063cfdf..958e5efe3ec 100644 --- a/src/librustc_mir/transform/qualify_min_const_fn.rs +++ b/src/librustc_mir/transform/qualify_min_const_fn.rs @@ -365,10 +365,8 @@ fn check_terminator( cleanup: _, } => check_operand(tcx, mir, cond, span), - | TerminatorKind::FalseUnwind { .. } => span_bug!( - terminator.source_info.span, - "min_const_fn encountered `{:#?}`", - terminator - ), + TerminatorKind::FalseUnwind { .. } => { + Err((span, "loops are not allowed in const fn".into())) + }, } } diff --git a/src/test/ui/consts/min_const_fn/loop_ice.rs b/src/test/ui/consts/min_const_fn/loop_ice.rs new file mode 100644 index 00000000000..4278a8e2d00 --- /dev/null +++ b/src/test/ui/consts/min_const_fn/loop_ice.rs @@ -0,0 +1,5 @@ +const fn foo() { + loop {} //~ ERROR loops are not allowed in const fn +} + +fn main() {} diff --git a/src/test/ui/consts/min_const_fn/loop_ice.stderr b/src/test/ui/consts/min_const_fn/loop_ice.stderr new file mode 100644 index 00000000000..1424cea65af --- /dev/null +++ b/src/test/ui/consts/min_const_fn/loop_ice.stderr @@ -0,0 +1,8 @@ +error: loops are not allowed in const fn + --> $DIR/loop_ice.rs:2:5 + | +LL | loop {} //~ ERROR loops are not allowed in const fn + | ^^^^^^^ + +error: aborting due to previous error + |
