@@ -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