diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-17 12:19:03 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-17 12:19:03 +0000 |
commit | 64d98f8ee037282c35007b64c2649055c56af1db (patch) | |
tree | 5492bcf97fce41ee1c0b1cc2add283f3e66cdab0 /src/test/ui/consts/const-int-arithmetic.rs | |
parent | Adding debian version 1.67.1+dfsg1-1. (diff) | |
download | rustc-64d98f8ee037282c35007b64c2649055c56af1db.tar.xz rustc-64d98f8ee037282c35007b64c2649055c56af1db.zip |
Merging upstream version 1.68.2+dfsg1.
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'src/test/ui/consts/const-int-arithmetic.rs')
-rw-r--r-- | src/test/ui/consts/const-int-arithmetic.rs | 138 |
1 files changed, 0 insertions, 138 deletions
diff --git a/src/test/ui/consts/const-int-arithmetic.rs b/src/test/ui/consts/const-int-arithmetic.rs deleted file mode 100644 index b9096648f..000000000 --- a/src/test/ui/consts/const-int-arithmetic.rs +++ /dev/null @@ -1,138 +0,0 @@ -// run-pass - -macro_rules! suite { - ($( - $fn:ident -> $ty:ty { $( $label:ident : $expr:expr, $result:expr; )* } - )*) => { $( - fn $fn() { - $( - const $label: $ty = $expr; - assert_eq!($label, $result); - )* - } - )* } -} - -suite!( - checked -> Option<i8> { - // `const_checked_int_methods` - C1: 5i8.checked_add(2), Some(7); - C2: 127i8.checked_add(2), None; - - C3: 5i8.checked_sub(2), Some(3); - C4: (-127i8).checked_sub(2), None; - - C5: 1i8.checked_mul(3), Some(3); - C6: 5i8.checked_mul(122), None; - C7: (-127i8).checked_mul(-99), None; - - C8: (i8::MIN + 1).checked_div(-1), Some(127); - C9: i8::MIN.checked_div(-1), None; - C10: 1i8.checked_div(0), None; - - C11: 5i8.checked_rem(2), Some(1); - C12: 5i8.checked_rem(0), None; - C13: i8::MIN.checked_rem(-1), None; - - C14: 5i8.checked_neg(), Some(-5); - C15: i8::MIN.checked_neg(), None; - - C16: 0x1i8.checked_shl(4), Some(0x10); - C17: 0x1i8.checked_shl(129), None; - - C18: 0x10i8.checked_shr(4), Some(0x1); - C19: 0x10i8.checked_shr(128), None; - - - C20: (-5i8).checked_abs(), Some(5); - C21: i8::MIN.checked_abs(), None; - - // `const_euclidean_int_methods` - C22: (i8::MIN + 1).checked_div_euclid(-1), Some(127); - C23: i8::MIN.checked_div_euclid(-1), None; - C24: (1i8).checked_div_euclid(0), None; - - C25: 5i8.checked_rem_euclid(2), Some(1); - C26: 5i8.checked_rem_euclid(0), None; - C27: i8::MIN.checked_rem_euclid(-1), None; - } - checked_i128 -> Option<i128> { - CHK_ADD_I128: i128::MAX.checked_add(1), None; - CHK_MUL_I128: i128::MIN.checked_mul(-1), None; - } - - saturating_and_wrapping -> i8 { - // `const_saturating_int_methods` - C28: 100i8.saturating_add(1), 101; - C29: i8::MAX.saturating_add(100), i8::MAX; - C30: i8::MIN.saturating_add(-1), i8::MIN; - - C31: 100i8.saturating_sub(127), -27; - C32: i8::MIN.saturating_sub(100), i8::MIN; - C33: i8::MAX.saturating_sub(-1), i8::MAX; - - C34: 10i8.saturating_mul(12), 120; - C35: i8::MAX.saturating_mul(10), i8::MAX; - C36: i8::MIN.saturating_mul(10), i8::MIN; - - C37: 100i8.saturating_neg(), -100; - C38: (-100i8).saturating_neg(), 100; - C39: i8::MIN.saturating_neg(), i8::MAX; - C40: i8::MAX.saturating_neg(), i8::MIN + 1; - - C57: 100i8.saturating_abs(), 100; - C58: (-100i8).saturating_abs(), 100; - C59: i8::MIN.saturating_abs(), i8::MAX; - C60: (i8::MIN + 1).saturating_abs(), i8::MAX; - - // `const_wrapping_int_methods` - C41: 100i8.wrapping_div(10), 10; - C42: (-128i8).wrapping_div(-1), -128; - - C43: 100i8.wrapping_rem(10), 0; - C44: (-128i8).wrapping_rem(-1), 0; - - // `const_euclidean_int_methods` - C45: 100i8.wrapping_div_euclid(10), 10; - C46: (-128i8).wrapping_div_euclid(-1), -128; - - C47: 100i8.wrapping_rem_euclid(10), 0; - C48: (-128i8).wrapping_rem_euclid(-1), 0; - } - saturating_and_wrapping_i128 -> i128 { - SAT_ADD_I128: i128::MAX.saturating_add(1), i128::MAX; - SAT_MUL_I128: i128::MAX.saturating_mul(2), i128::MAX; - - WRP_ADD_I128: i128::MAX.wrapping_add(1), i128::MIN; - WRP_MUL_I128: i128::MAX.wrapping_mul(3), i128::MAX-2; - } - - overflowing -> (i8, bool) { - // `const_overflowing_int_methods` - C49: 5i8.overflowing_div(2), (2, false); - C50: i8::MIN.overflowing_div(-1), (i8::MIN, true); - - C51: 5i8.overflowing_rem(2), (1, false); - C52: i8::MIN.overflowing_rem(-1), (0, true); - - // `const_euclidean_int_methods` - C53: 5i8.overflowing_div_euclid(2), (2, false); - C54: i8::MIN.overflowing_div_euclid(-1), (i8::MIN, true); - - C55: 5i8.overflowing_rem_euclid(2), (1, false); - C56: i8::MIN.overflowing_rem_euclid(-1), (0, true); - } - overflowing_i128 -> (i128, bool) { - OFL_ADD_I128: i128::MAX.overflowing_add(1), (i128::MIN, true); - OFL_MUL_I128: i128::MAX.overflowing_mul(3), (i128::MAX-2, true); - } -); - -fn main() { - checked(); - checked_i128(); - saturating_and_wrapping(); - saturating_and_wrapping_i128(); - overflowing(); - overflowing_i128(); -} |