| const _: () = loop { break (); }; |
| |
| static FOO: i32 = loop { break 4; }; |
| |
| const fn foo() { |
| loop {} |
| } |
| |
| pub trait Foo { |
| const BAR: i32 = loop { break 4; }; |
| } |
| |
| impl Foo for () { |
| const BAR: i32 = loop { break 4; }; |
| } |
| |
| fn non_const_outside() { |
| const fn const_inside() { |
| loop {} |
| } |
| } |
| |
| const fn const_outside() { |
| fn non_const_inside() { |
| loop {} |
| } |
| } |
| |
| fn main() { |
| let x = [0; { |
| while false {} |
| 4 |
| }]; |
| } |
| |
| const _: i32 = { |
| let mut x = 0; |
| |
| while x < 4 { |
| x += 1; |
| } |
| |
| while x < 8 { |
| x += 1; |
| } |
| |
| x |
| }; |
| |
| const _: i32 = { |
| let mut x = 0; |
| |
| for i in 0..4 { //~ ERROR `for` is not allowed in a `const` |
| //~^ ERROR: cannot call |
| //~| ERROR: cannot convert |
| x += i; |
| } |
| |
| for i in 0..4 { //~ ERROR `for` is not allowed in a `const` |
| //~^ ERROR: cannot call |
| //~| ERROR: cannot convert |
| x += i; |
| } |
| |
| x |
| }; |
| |
| const _: i32 = { |
| let mut x = 0; |
| |
| loop { |
| x += 1; |
| if x == 4 { |
| break; |
| } |
| } |
| |
| loop { |
| x += 1; |
| if x == 8 { |
| break; |
| } |
| } |
| |
| x |
| }; |
| |
| const _: i32 = { |
| let mut x = 0; |
| while let None = Some(x) { } |
| while let None = Some(x) { } |
| x |
| }; |