Skip to content

Commit a90ba68

Browse files
committed
Revert "Use autoharness for num::<impl *>::unchecked_{add,sub}"
This reverts commit 153f5d1.
1 parent 308f6a1 commit a90ba68

File tree

2 files changed

+50
-24
lines changed

2 files changed

+50
-24
lines changed

.github/workflows/kani.yml

Lines changed: 0 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -82,18 +82,6 @@ jobs:
8282
--include-pattern alloc::layout::Layout::from_size_align \
8383
--include-pattern ascii::ascii_char::AsciiChar::from_u8 \
8484
--include-pattern char::convert::from_u32_unchecked \
85-
--include-pattern "num::<impl i8>::unchecked_add" \
86-
--include-pattern "num::<impl i16>::unchecked_add" \
87-
--include-pattern "num::<impl i32>::unchecked_add" \
88-
--include-pattern "num::<impl i64>::unchecked_add" \
89-
--include-pattern "num::<impl i128>::unchecked_add" \
90-
--include-pattern "num::<impl isize>::unchecked_add" \
91-
--include-pattern "num::<impl u8>::unchecked_add" \
92-
--include-pattern "num::<impl u16>::unchecked_add" \
93-
--include-pattern "num::<impl u32>::unchecked_add" \
94-
--include-pattern "num::<impl u64>::unchecked_add" \
95-
--include-pattern "num::<impl u128>::unchecked_add" \
96-
--include-pattern "num::<impl usize>::unchecked_add" \
9785
--include-pattern "num::<impl i8>::unchecked_neg" \
9886
--include-pattern "num::<impl i16>::unchecked_neg" \
9987
--include-pattern "num::<impl i32>::unchecked_neg" \
@@ -112,18 +100,6 @@ jobs:
112100
--include-pattern "num::<impl u64>::unchecked_sh" \
113101
--include-pattern "num::<impl u128>::unchecked_sh" \
114102
--include-pattern "num::<impl usize>::unchecked_sh" \
115-
--include-pattern "num::<impl i8>::unchecked_sub" \
116-
--include-pattern "num::<impl i16>::unchecked_sub" \
117-
--include-pattern "num::<impl i32>::unchecked_sub" \
118-
--include-pattern "num::<impl i64>::unchecked_sub" \
119-
--include-pattern "num::<impl i128>::unchecked_sub" \
120-
--include-pattern "num::<impl isize>::unchecked_sub" \
121-
--include-pattern "num::<impl u8>::unchecked_sub" \
122-
--include-pattern "num::<impl u16>::unchecked_sub" \
123-
--include-pattern "num::<impl u32>::unchecked_sub" \
124-
--include-pattern "num::<impl u64>::unchecked_sub" \
125-
--include-pattern "num::<impl u128>::unchecked_sub" \
126-
--include-pattern "num::<impl usize>::unchecked_sub" \
127103
--include-pattern "num::<impl i8>::wrapping_sh" \
128104
--include-pattern "num::<impl i16>::wrapping_sh" \
129105
--include-pattern "num::<impl i32>::wrapping_sh" \

library/core/src/num/mod.rs

Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1739,6 +1739,30 @@ mod verify {
17391739
}
17401740
}
17411741

1742+
// `unchecked_add` proofs
1743+
//
1744+
// Target types:
1745+
// i{8,16,32,64,128,size} and u{8,16,32,64,128,size} -- 12 types in total
1746+
//
1747+
// Target contracts:
1748+
// Preconditions: No overflow should occur
1749+
// #[requires(!self.overflowing_add(rhs).1)]
1750+
//
1751+
// Target function:
1752+
// pub const unsafe fn unchecked_add(self, rhs: Self) -> Self
1753+
generate_unchecked_math_harness!(i8, unchecked_add, checked_unchecked_add_i8);
1754+
generate_unchecked_math_harness!(i16, unchecked_add, checked_unchecked_add_i16);
1755+
generate_unchecked_math_harness!(i32, unchecked_add, checked_unchecked_add_i32);
1756+
generate_unchecked_math_harness!(i64, unchecked_add, checked_unchecked_add_i64);
1757+
generate_unchecked_math_harness!(i128, unchecked_add, checked_unchecked_add_i128);
1758+
generate_unchecked_math_harness!(isize, unchecked_add, checked_unchecked_add_isize);
1759+
generate_unchecked_math_harness!(u8, unchecked_add, checked_unchecked_add_u8);
1760+
generate_unchecked_math_harness!(u16, unchecked_add, checked_unchecked_add_u16);
1761+
generate_unchecked_math_harness!(u32, unchecked_add, checked_unchecked_add_u32);
1762+
generate_unchecked_math_harness!(u64, unchecked_add, checked_unchecked_add_u64);
1763+
generate_unchecked_math_harness!(u128, unchecked_add, checked_unchecked_add_u128);
1764+
generate_unchecked_math_harness!(usize, unchecked_add, checked_unchecked_add_usize);
1765+
17421766
// `unchecked_mul` proofs
17431767
//
17441768
// Target types:
@@ -1896,6 +1920,32 @@ mod verify {
18961920
usize::MAX
18971921
);
18981922

1923+
// `unchecked_sub` proofs
1924+
//
1925+
// Target types:
1926+
// i{8,16,32,64,128,size} and u{8,16,32,64,128,size} -- 12 types in total
1927+
//
1928+
// Target contracts:
1929+
// Preconditions: No overflow should occur
1930+
// #[requires(!self.overflowing_sub(rhs).1)]
1931+
//
1932+
// Target function:
1933+
// pub const unsafe fn unchecked_sub(self, rhs: Self) -> Self
1934+
//
1935+
// This function performs an unchecked subtraction operation.
1936+
generate_unchecked_math_harness!(i8, unchecked_sub, checked_unchecked_sub_i8);
1937+
generate_unchecked_math_harness!(i16, unchecked_sub, checked_unchecked_sub_i16);
1938+
generate_unchecked_math_harness!(i32, unchecked_sub, checked_unchecked_sub_i32);
1939+
generate_unchecked_math_harness!(i64, unchecked_sub, checked_unchecked_sub_i64);
1940+
generate_unchecked_math_harness!(i128, unchecked_sub, checked_unchecked_sub_i128);
1941+
generate_unchecked_math_harness!(isize, unchecked_sub, checked_unchecked_sub_isize);
1942+
generate_unchecked_math_harness!(u8, unchecked_sub, checked_unchecked_sub_u8);
1943+
generate_unchecked_math_harness!(u16, unchecked_sub, checked_unchecked_sub_u16);
1944+
generate_unchecked_math_harness!(u32, unchecked_sub, checked_unchecked_sub_u32);
1945+
generate_unchecked_math_harness!(u64, unchecked_sub, checked_unchecked_sub_u64);
1946+
generate_unchecked_math_harness!(u128, unchecked_sub, checked_unchecked_sub_u128);
1947+
generate_unchecked_math_harness!(usize, unchecked_sub, checked_unchecked_sub_usize);
1948+
18991949
// Part_2 `carrying_mul` proofs
19001950
//
19011951
// ====================== u8 Harnesses ======================

0 commit comments

Comments
 (0)