diff options
Diffstat (limited to 'src/test/ui/consts/control-flow/basics.rs')
-rw-r--r-- | src/test/ui/consts/control-flow/basics.rs | 82 |
1 files changed, 0 insertions, 82 deletions
diff --git a/src/test/ui/consts/control-flow/basics.rs b/src/test/ui/consts/control-flow/basics.rs deleted file mode 100644 index 02e5501f1..000000000 --- a/src/test/ui/consts/control-flow/basics.rs +++ /dev/null @@ -1,82 +0,0 @@ -// Test basic functionality of control flow in a const context. - -// run-pass - -const X: u32 = 4; -const Y: u32 = 5; - -const ABS_DIFF: u32 = if X < Y { - Y - X -} else { - X - Y -}; - -const fn abs_diff(a: u32, b: u32) -> u32 { - match (a, b) { - (big, little) if big > little => big - little, - (little, big) => big - little, - } -} - -const fn gcd(a: u32, b: u32) -> u32 { - if b == 0 { - return a; - } - - gcd(b, a % b) -} - -const fn fib(n: u64) -> u64 { - if n == 0 { - return 0; - } - - let mut fib = (0, 1); - let mut i = 1; - while i < n { - fib = (fib.1, fib.0 + fib.1); - i += 1; - } - - fib.1 -} - -const fn is_prime(n: u64) -> bool { - if n % 2 == 0 { - return false; - } - - let mut div = 3; - loop { - if n % div == 0 { - return false; - } - - if div * div > n { - return true; - } - - div += 2; - } -} - -macro_rules! const_assert { - ($expr:expr) => { - const _: () = assert!($expr); - assert!($expr); - } -} - -fn main() { - const_assert!(abs_diff(4, 5) == abs_diff(5, 4)); - const_assert!(ABS_DIFF == abs_diff(5, 4)); - - const_assert!(gcd(48, 18) == 6); - const_assert!(gcd(18, 48) == 6); - - const_assert!(fib(2) == 1); - const_assert!(fib(8) == 21); - - const_assert!(is_prime(113)); - const_assert!(!is_prime(117)); -} |