Skip to content

Commit 76aa6d8

Browse files
authored
Rollup merge of rust-lang#93353 - kellerkindt:saturating_int_assign_impl, r=joshtriplett
Unimpl {Add,Sub,Mul,Div,Rem,BitXor,BitOr,BitAnd}<$t> for Saturating<$t> Tracking issue rust-lang#92354 Analog to 9648b31 rust-lang#93208 reduce `saturating_int_assign_impl` (rust-lang#93208) to: ```rust let mut value = Saturating(2u8); value += 3u8; value -= 1u8; value *= 2u8; value /= 2u8; value %= 2u8; value ^= 255u8; value |= 123u8; value &= 2u8; ``` See rust-lang#93208 (comment)
2 parents 796ddb4 + a6c0a3d commit 76aa6d8

File tree

1 file changed

+8
-122
lines changed

1 file changed

+8
-122
lines changed

library/core/src/num/saturating.rs

+8-122
Original file line numberDiff line numberDiff line change
@@ -217,18 +217,6 @@ macro_rules! saturating_impl {
217217
forward_ref_binop! { impl Add, add for Saturating<$t>, Saturating<$t>,
218218
#[unstable(feature = "saturating_int_impl", issue = "87920")] }
219219

220-
#[unstable(feature = "saturating_int_assign_impl", issue = "92354")]
221-
impl Add<$t> for Saturating<$t> {
222-
type Output = Saturating<$t>;
223-
224-
#[inline]
225-
fn add(self, other: $t) -> Saturating<$t> {
226-
Saturating(self.0.saturating_add(other))
227-
}
228-
}
229-
forward_ref_binop! { impl Add, add for Saturating<$t>, $t,
230-
#[unstable(feature = "saturating_int_assign_impl", issue = "92354")] }
231-
232220
#[unstable(feature = "saturating_int_impl", issue = "87920")]
233221
impl AddAssign for Saturating<$t> {
234222
#[inline]
@@ -242,7 +230,7 @@ macro_rules! saturating_impl {
242230
impl AddAssign<$t> for Saturating<$t> {
243231
#[inline]
244232
fn add_assign(&mut self, other: $t) {
245-
*self = *self + other;
233+
*self = *self + Saturating(other);
246234
}
247235
}
248236
forward_ref_op_assign! { impl AddAssign, add_assign for Saturating<$t>, $t }
@@ -259,18 +247,6 @@ macro_rules! saturating_impl {
259247
forward_ref_binop! { impl Sub, sub for Saturating<$t>, Saturating<$t>,
260248
#[unstable(feature = "saturating_int_impl", issue = "87920")] }
261249

262-
#[unstable(feature = "saturating_int_assign_impl", issue = "92354")]
263-
impl Sub<$t> for Saturating<$t> {
264-
type Output = Saturating<$t>;
265-
266-
#[inline]
267-
fn sub(self, other: $t) -> Saturating<$t> {
268-
Saturating(self.0.saturating_sub(other))
269-
}
270-
}
271-
forward_ref_binop! { impl Sub, sub for Saturating<$t>, $t,
272-
#[unstable(feature = "saturating_int_assign_impl", issue = "92354")] }
273-
274250
#[unstable(feature = "saturating_int_impl", issue = "87920")]
275251
impl SubAssign for Saturating<$t> {
276252
#[inline]
@@ -284,7 +260,7 @@ macro_rules! saturating_impl {
284260
impl SubAssign<$t> for Saturating<$t> {
285261
#[inline]
286262
fn sub_assign(&mut self, other: $t) {
287-
*self = *self - other;
263+
*self = *self - Saturating(other);
288264
}
289265
}
290266
forward_ref_op_assign! { impl SubAssign, sub_assign for Saturating<$t>, $t }
@@ -301,18 +277,6 @@ macro_rules! saturating_impl {
301277
forward_ref_binop! { impl Mul, mul for Saturating<$t>, Saturating<$t>,
302278
#[unstable(feature = "saturating_int_impl", issue = "87920")] }
303279

304-
#[unstable(feature = "saturating_int_assign_impl", issue = "92354")]
305-
impl Mul<$t> for Saturating<$t> {
306-
type Output = Saturating<$t>;
307-
308-
#[inline]
309-
fn mul(self, other: $t) -> Saturating<$t> {
310-
Saturating(self.0.saturating_mul(other))
311-
}
312-
}
313-
forward_ref_binop! { impl Mul, mul for Saturating<$t>, $t,
314-
#[unstable(feature = "saturating_int_assign_impl", issue = "92354")] }
315-
316280
#[unstable(feature = "saturating_int_impl", issue = "87920")]
317281
impl MulAssign for Saturating<$t> {
318282
#[inline]
@@ -326,7 +290,7 @@ macro_rules! saturating_impl {
326290
impl MulAssign<$t> for Saturating<$t> {
327291
#[inline]
328292
fn mul_assign(&mut self, other: $t) {
329-
*self = *self * other;
293+
*self = *self * Saturating(other);
330294
}
331295
}
332296
forward_ref_op_assign! { impl MulAssign, mul_assign for Saturating<$t>, $t }
@@ -362,36 +326,6 @@ macro_rules! saturating_impl {
362326
forward_ref_binop! { impl Div, div for Saturating<$t>, Saturating<$t>,
363327
#[unstable(feature = "saturating_int_impl", issue = "87920")] }
364328

365-
/// # Examples
366-
///
367-
/// Basic usage:
368-
///
369-
/// ```
370-
/// #![feature(saturating_int_impl, saturating_int_assign_impl)]
371-
/// use std::num::Saturating;
372-
///
373-
#[doc = concat!("assert_eq!(Saturating(2", stringify!($t), "), Saturating(5", stringify!($t), ") / 2);")]
374-
#[doc = concat!("assert_eq!(Saturating(", stringify!($t), "::MAX), Saturating(", stringify!($t), "::MAX) / 1);")]
375-
#[doc = concat!("assert_eq!(Saturating(", stringify!($t), "::MIN), Saturating(", stringify!($t), "::MIN) / 1);")]
376-
/// ```
377-
///
378-
/// ```should_panic
379-
/// #![feature(saturating_int_impl, saturating_int_assign_impl)]
380-
/// use std::num::Saturating;
381-
///
382-
#[doc = concat!("let _ = Saturating(0", stringify!($t), ") / 0;")]
383-
/// ```
384-
#[unstable(feature = "saturating_int_assign_impl", issue = "92354")]
385-
impl Div<$t> for Saturating<$t> {
386-
type Output = Saturating<$t>;
387-
388-
#[inline]
389-
fn div(self, other: $t) -> Saturating<$t> {
390-
Saturating(self.0.saturating_div(other))
391-
}
392-
}
393-
forward_ref_binop! { impl Div, div for Saturating<$t>, $t,
394-
#[unstable(feature = "saturating_int_assign_impl", issue = "92354")] }
395329

396330
#[unstable(feature = "saturating_int_impl", issue = "87920")]
397331
impl DivAssign for Saturating<$t> {
@@ -406,7 +340,7 @@ macro_rules! saturating_impl {
406340
impl DivAssign<$t> for Saturating<$t> {
407341
#[inline]
408342
fn div_assign(&mut self, other: $t) {
409-
*self = *self / other;
343+
*self = *self / Saturating(other);
410344
}
411345
}
412346
forward_ref_op_assign! { impl DivAssign, div_assign for Saturating<$t>, $t }
@@ -423,18 +357,6 @@ macro_rules! saturating_impl {
423357
forward_ref_binop! { impl Rem, rem for Saturating<$t>, Saturating<$t>,
424358
#[unstable(feature = "saturating_int_impl", issue = "87920")] }
425359

426-
#[unstable(feature = "saturating_int_assign_impl", issue = "92354")]
427-
impl Rem<$t> for Saturating<$t> {
428-
type Output = Saturating<$t>;
429-
430-
#[inline]
431-
fn rem(self, other: $t) -> Saturating<$t> {
432-
Saturating(self.0.rem(other))
433-
}
434-
}
435-
forward_ref_binop! { impl Rem, rem for Saturating<$t>, $t,
436-
#[unstable(feature = "saturating_int_assign_impl", issue = "92354")] }
437-
438360
#[unstable(feature = "saturating_int_impl", issue = "87920")]
439361
impl RemAssign for Saturating<$t> {
440362
#[inline]
@@ -448,7 +370,7 @@ macro_rules! saturating_impl {
448370
impl RemAssign<$t> for Saturating<$t> {
449371
#[inline]
450372
fn rem_assign(&mut self, other: $t) {
451-
*self = *self % other;
373+
*self = *self % Saturating(other);
452374
}
453375
}
454376
forward_ref_op_assign! { impl RemAssign, rem_assign for Saturating<$t>, $t }
@@ -477,18 +399,6 @@ macro_rules! saturating_impl {
477399
forward_ref_binop! { impl BitXor, bitxor for Saturating<$t>, Saturating<$t>,
478400
#[unstable(feature = "saturating_int_impl", issue = "87920")] }
479401

480-
#[unstable(feature = "saturating_int_assign_impl", issue = "92354")]
481-
impl BitXor<$t> for Saturating<$t> {
482-
type Output = Saturating<$t>;
483-
484-
#[inline]
485-
fn bitxor(self, other: $t) -> Saturating<$t> {
486-
Saturating(self.0 ^ other)
487-
}
488-
}
489-
forward_ref_binop! { impl BitXor, bitxor for Saturating<$t>, $t,
490-
#[unstable(feature = "saturating_int_assign_impl", issue = "92354")] }
491-
492402
#[unstable(feature = "saturating_int_impl", issue = "87920")]
493403
impl BitXorAssign for Saturating<$t> {
494404
#[inline]
@@ -502,7 +412,7 @@ macro_rules! saturating_impl {
502412
impl BitXorAssign<$t> for Saturating<$t> {
503413
#[inline]
504414
fn bitxor_assign(&mut self, other: $t) {
505-
*self = *self ^ other;
415+
*self = *self ^ Saturating(other);
506416
}
507417
}
508418
forward_ref_op_assign! { impl BitXorAssign, bitxor_assign for Saturating<$t>, $t }
@@ -519,18 +429,6 @@ macro_rules! saturating_impl {
519429
forward_ref_binop! { impl BitOr, bitor for Saturating<$t>, Saturating<$t>,
520430
#[unstable(feature = "saturating_int_impl", issue = "87920")] }
521431

522-
#[unstable(feature = "saturating_int_assign_impl", issue = "92354")]
523-
impl BitOr<$t> for Saturating<$t> {
524-
type Output = Saturating<$t>;
525-
526-
#[inline]
527-
fn bitor(self, other: $t) -> Saturating<$t> {
528-
Saturating(self.0 | other)
529-
}
530-
}
531-
forward_ref_binop! { impl BitOr, bitor for Saturating<$t>, $t,
532-
#[unstable(feature = "saturating_int_assign_impl", issue = "92354")] }
533-
534432
#[unstable(feature = "saturating_int_impl", issue = "87920")]
535433
impl BitOrAssign for Saturating<$t> {
536434
#[inline]
@@ -544,7 +442,7 @@ macro_rules! saturating_impl {
544442
impl BitOrAssign<$t> for Saturating<$t> {
545443
#[inline]
546444
fn bitor_assign(&mut self, other: $t) {
547-
*self = *self | other;
445+
*self = *self | Saturating(other);
548446
}
549447
}
550448
forward_ref_op_assign! { impl BitOrAssign, bitor_assign for Saturating<$t>, $t }
@@ -561,18 +459,6 @@ macro_rules! saturating_impl {
561459
forward_ref_binop! { impl BitAnd, bitand for Saturating<$t>, Saturating<$t>,
562460
#[unstable(feature = "saturating_int_impl", issue = "87920")] }
563461

564-
#[unstable(feature = "saturating_int_assign_impl", issue = "92354")]
565-
impl BitAnd<$t> for Saturating<$t> {
566-
type Output = Saturating<$t>;
567-
568-
#[inline]
569-
fn bitand(self, other: $t) -> Saturating<$t> {
570-
Saturating(self.0 & other)
571-
}
572-
}
573-
forward_ref_binop! { impl BitAnd, bitand for Saturating<$t>, $t,
574-
#[unstable(feature = "saturating_int_assign_impl", issue = "92354")] }
575-
576462
#[unstable(feature = "saturating_int_impl", issue = "87920")]
577463
impl BitAndAssign for Saturating<$t> {
578464
#[inline]
@@ -586,7 +472,7 @@ macro_rules! saturating_impl {
586472
impl BitAndAssign<$t> for Saturating<$t> {
587473
#[inline]
588474
fn bitand_assign(&mut self, other: $t) {
589-
*self = *self & other;
475+
*self = *self & Saturating(other);
590476
}
591477
}
592478
forward_ref_op_assign! { impl BitAndAssign, bitand_assign for Saturating<$t>, $t }

0 commit comments

Comments
 (0)