]> git.lizzy.rs Git - rust.git/blob - src/test/ui/consts/control-flow/short-circuit-let.rs
Remove unnecessary `const_fn` feature gates
[rust.git] / src / test / ui / consts / control-flow / short-circuit-let.rs
1 // `&&` and `||` were previously forbidden in constants alongside let bindings.
2
3 // run-pass
4
5 #![feature(const_if_match)]
6 #![feature(const_panic)]
7
8 const X: i32 = {
9     let mut x = 0;
10     let _ = true && { x = 1; false };
11     x
12 };
13
14 const Y: bool = {
15     let x = true && false || true;
16     x
17 };
18
19 const fn truthy() -> bool {
20     let x = true || return false;
21     x
22 }
23
24 const fn falsy() -> bool {
25     let x = true && return false;
26     x
27 }
28
29 fn main() {
30     const _: () = assert!(Y);
31     assert!(Y);
32
33     const _: () = assert!(X == 1);
34     assert_eq!(X, 1);
35
36     const _: () = assert!(truthy());
37     const _: () = assert!(!falsy());
38     assert!(truthy() && !falsy());
39 }