Skip to content

Commit 7382550

Browse files
Rollup merge of rust-lang#116090 - rmehri01:strict_integer_ops, r=m-ou-se
Implement strict integer operations that panic on overflow This PR implements the first part of the ACP for adding panic on overflow style arithmetic operations (rust-lang/libs-team#270), mentioned in rust-lang#116064. It adds the following operations on both signed and unsigned integers: - `strict_add` - `strict_sub` - `strict_mul` - `strict_div` - `strict_div_euclid` - `strict_rem` - `strict_rem_euclid` - `strict_neg` - `strict_shl` - `strict_shr` - `strict_pow` Additionally, signed integers have: - `strict_add_unsigned` - `strict_sub_unsigned` - `strict_abs` And unsigned integers have: - `strict_add_signed` The `div` and `rem` operations are the same as normal division and remainder but are added for completeness similar to the corresponding `wrapping_*` operations. I'm not sure if I missed any operations, I basically found them from the `wrapping_*` and `checked_*` operations on both integer types.
2 parents 6745c60 + 6d17169 commit 7382550

File tree

5 files changed

+996
-15
lines changed

5 files changed

+996
-15
lines changed

Diff for: library/core/src/lib.rs

+1
Original file line numberDiff line numberDiff line change
@@ -161,6 +161,7 @@
161161
#![feature(const_slice_ptr_len)]
162162
#![feature(const_slice_split_at_mut)]
163163
#![feature(const_str_from_utf8_unchecked_mut)]
164+
#![feature(const_strict_overflow_ops)]
164165
#![feature(const_swap)]
165166
#![feature(const_try)]
166167
#![feature(const_type_id)]

0 commit comments

Comments
 (0)