@@ -99,8 +99,9 @@ macro_rules! integer_sum_product {
9999}
100100
101101macro_rules! saturating_integer_sum_product {
102- ( @impls $zero: expr, $one: expr, #[ $attr: meta] , $( $a: ty) * ) => ( $(
102+ ( @impls $zero: expr, $one: expr, $doc : expr , #[ $attr: meta] , $( $a: ty) * ) => ( $(
103103 #[ $attr]
104+ #[ doc = $doc]
104105 impl Sum for $a {
105106 fn sum<I : Iterator <Item =Self >>( iter: I ) -> Self {
106107 iter. fold(
@@ -112,6 +113,7 @@ macro_rules! saturating_integer_sum_product {
112113 }
113114
114115 #[ $attr]
116+ #[ doc = $doc]
115117 impl Product for $a {
116118 fn product<I : Iterator <Item =Self >>( iter: I ) -> Self {
117119 iter. fold(
@@ -123,6 +125,7 @@ macro_rules! saturating_integer_sum_product {
123125 }
124126
125127 #[ $attr]
128+ #[ doc = $doc]
126129 impl <' a> Sum <& ' a $a> for $a {
127130 fn sum<I : Iterator <Item =& ' a Self >>( iter: I ) -> Self {
128131 iter. fold(
@@ -134,6 +137,7 @@ macro_rules! saturating_integer_sum_product {
134137 }
135138
136139 #[ $attr]
140+ #[ doc = $doc]
137141 impl <' a> Product <& ' a $a> for $a {
138142 fn product<I : Iterator <Item =& ' a Self >>( iter: I ) -> Self {
139143 iter. fold(
@@ -145,8 +149,9 @@ macro_rules! saturating_integer_sum_product {
145149 }
146150 ) * ) ;
147151 ( $( $a: ty) * ) => (
148- integer_sum_product!( @impls Saturating ( 0 ) , Saturating ( 1 ) ,
149- #[ stable( feature = "saturating_iter_arith" , since = "1.14.0" ) ] ,
152+ saturating_integer_sum_product!( @impls Saturating ( 0 ) , Saturating ( 1 ) ,
153+ "The short-circuiting behavior of this implementation is unspecified. If you care about short-circuiting, use [`Iterator::fold`] directly." ,
154+ #[ stable( feature = "saturating_iter_arith" , since = "CURRENT_RUSTC_VERSION" ) ] ,
150155 $( Saturating <$a>) * ) ;
151156 ) ;
152157}
0 commit comments