diff options
Diffstat (limited to 'src/test/ui/consts/control-flow/loop.rs')
| -rw-r--r-- | src/test/ui/consts/control-flow/loop.rs | 42 |
1 files changed, 16 insertions, 26 deletions
diff --git a/src/test/ui/consts/control-flow/loop.rs b/src/test/ui/consts/control-flow/loop.rs index bc57f7568a7..2b8561a2644 100644 --- a/src/test/ui/consts/control-flow/loop.rs +++ b/src/test/ui/consts/control-flow/loop.rs @@ -1,31 +1,22 @@ -// Ensure that loops are forbidden in a const context unless `#![feature(const_loop)]` is enabled. -// `while` loops require `#![feature(const_if_match)]` to be enabled as well. +const _: () = loop { break (); }; -// gate-test-const_loop -// revisions: stock if_match loop_ both - -#![cfg_attr(any(both, if_match), feature(const_if_match))] -#![cfg_attr(any(both, loop_), feature(const_loop))] - -const _: () = loop {}; //[stock,if_match]~ ERROR `loop` is not allowed in a `const` - -static FOO: i32 = loop { break 4; }; //[stock,if_match]~ ERROR `loop` is not allowed in a `static` +static FOO: i32 = loop { break 4; }; const fn foo() { - loop {} //[stock,if_match]~ ERROR `loop` is not allowed in a `const fn` + loop {} } pub trait Foo { - const BAR: i32 = loop { break 4; }; //[stock,if_match]~ ERROR `loop` is not allowed in a `const` + const BAR: i32 = loop { break 4; }; } impl Foo for () { - const BAR: i32 = loop { break 4; }; //[stock,if_match]~ ERROR `loop` is not allowed in a `const` + const BAR: i32 = loop { break 4; }; } fn non_const_outside() { const fn const_inside() { - loop {} //[stock,if_match]~ ERROR `loop` is not allowed in a `const fn` + loop {} } } @@ -38,7 +29,6 @@ const fn const_outside() { fn main() { let x = [0; { while false {} - //[stock,if_match,loop_]~^ ERROR `while` is not allowed in a `const` 4 }]; } @@ -46,11 +36,11 @@ fn main() { const _: i32 = { let mut x = 0; - while x < 4 { //[stock,if_match,loop_]~ ERROR `while` is not allowed in a `const` + while x < 4 { x += 1; } - while x < 8 { //[stock,if_match,loop_]~ ERROR `while` is not allowed in a `const` + while x < 8 { x += 1; } @@ -60,11 +50,11 @@ const _: i32 = { const _: i32 = { let mut x = 0; - for i in 0..4 { //[stock,if_match,loop_,both]~ ERROR `for` is not allowed in a `const` + for i in 0..4 { //~ ERROR `for` is not allowed in a `const` x += i; } - for i in 0..4 { //[stock,if_match,loop_,both]~ ERROR `for` is not allowed in a `const` + for i in 0..4 { //~ ERROR `for` is not allowed in a `const` x += i; } @@ -74,16 +64,16 @@ const _: i32 = { const _: i32 = { let mut x = 0; - loop { //[stock,if_match]~ ERROR `loop` is not allowed in a `const` + loop { x += 1; - if x == 4 { //[stock,loop_]~ ERROR `if` is not allowed in a `const` + if x == 4 { break; } } - loop { //[stock,if_match]~ ERROR `loop` is not allowed in a `const` + loop { x += 1; - if x == 8 { //[stock,loop_]~ ERROR `if` is not allowed in a `const` + if x == 8 { break; } } @@ -93,7 +83,7 @@ const _: i32 = { const _: i32 = { let mut x = 0; - while let None = Some(x) { } //[stock,if_match,loop_]~ ERROR `while` is not allowed in a `const` - while let None = Some(x) { } //[stock,if_match,loop_]~ ERROR `while` is not allowed in a `const` + while let None = Some(x) { } + while let None = Some(x) { } x }; |
