@@ -620,6 +620,7 @@ impl<Tz: TimeZone> DateTime<Tz> {
620620 /// can not have more than 4 digits.
621621 #[ cfg( feature = "alloc" ) ]
622622 #[ must_use]
623+ #[ track_caller]
623624 pub fn to_rfc2822 ( & self ) -> String {
624625 let mut result = String :: with_capacity ( 32 ) ;
625626 write_rfc2822 ( & mut result, self . overflowing_naive_local ( ) , self . offset . fix ( ) )
@@ -1529,6 +1530,7 @@ impl<Tz: TimeZone> Add<TimeDelta> for DateTime<Tz> {
15291530 type Output = DateTime < Tz > ;
15301531
15311532 #[ inline]
1533+ #[ track_caller]
15321534 fn add ( self , rhs : TimeDelta ) -> DateTime < Tz > {
15331535 self . checked_add_signed ( rhs) . expect ( "`DateTime + TimeDelta` overflowed" )
15341536 }
@@ -1548,6 +1550,7 @@ impl<Tz: TimeZone> Add<Duration> for DateTime<Tz> {
15481550 type Output = DateTime < Tz > ;
15491551
15501552 #[ inline]
1553+ #[ track_caller]
15511554 fn add ( self , rhs : Duration ) -> DateTime < Tz > {
15521555 let rhs = TimeDelta :: from_std ( rhs)
15531556 . expect ( "overflow converting from core::time::Duration to TimeDelta" ) ;
@@ -1567,6 +1570,7 @@ impl<Tz: TimeZone> Add<Duration> for DateTime<Tz> {
15671570/// Consider using [`DateTime<Tz>::checked_add_signed`] to get an `Option` instead.
15681571impl < Tz : TimeZone > AddAssign < TimeDelta > for DateTime < Tz > {
15691572 #[ inline]
1573+ #[ track_caller]
15701574 fn add_assign ( & mut self , rhs : TimeDelta ) {
15711575 let datetime =
15721576 self . datetime . checked_add_signed ( rhs) . expect ( "`DateTime + TimeDelta` overflowed" ) ;
@@ -1587,6 +1591,7 @@ impl<Tz: TimeZone> AddAssign<TimeDelta> for DateTime<Tz> {
15871591/// Consider using [`DateTime<Tz>::checked_add_signed`] to get an `Option` instead.
15881592impl < Tz : TimeZone > AddAssign < Duration > for DateTime < Tz > {
15891593 #[ inline]
1594+ #[ track_caller]
15901595 fn add_assign ( & mut self , rhs : Duration ) {
15911596 let rhs = TimeDelta :: from_std ( rhs)
15921597 . expect ( "overflow converting from core::time::Duration to TimeDelta" ) ;
@@ -1603,6 +1608,7 @@ impl<Tz: TimeZone> Add<FixedOffset> for DateTime<Tz> {
16031608 type Output = DateTime < Tz > ;
16041609
16051610 #[ inline]
1611+ #[ track_caller]
16061612 fn add ( mut self , rhs : FixedOffset ) -> DateTime < Tz > {
16071613 self . datetime =
16081614 self . naive_utc ( ) . checked_add_offset ( rhs) . expect ( "`DateTime + FixedOffset` overflowed" ) ;
@@ -1626,6 +1632,7 @@ impl<Tz: TimeZone> Add<FixedOffset> for DateTime<Tz> {
16261632impl < Tz : TimeZone > Add < Months > for DateTime < Tz > {
16271633 type Output = DateTime < Tz > ;
16281634
1635+ #[ track_caller]
16291636 fn add ( self , rhs : Months ) -> Self :: Output {
16301637 self . checked_add_months ( rhs) . expect ( "`DateTime + Months` out of range" )
16311638 }
@@ -1647,6 +1654,7 @@ impl<Tz: TimeZone> Sub<TimeDelta> for DateTime<Tz> {
16471654 type Output = DateTime < Tz > ;
16481655
16491656 #[ inline]
1657+ #[ track_caller]
16501658 fn sub ( self , rhs : TimeDelta ) -> DateTime < Tz > {
16511659 self . checked_sub_signed ( rhs) . expect ( "`DateTime - TimeDelta` overflowed" )
16521660 }
@@ -1666,6 +1674,7 @@ impl<Tz: TimeZone> Sub<Duration> for DateTime<Tz> {
16661674 type Output = DateTime < Tz > ;
16671675
16681676 #[ inline]
1677+ #[ track_caller]
16691678 fn sub ( self , rhs : Duration ) -> DateTime < Tz > {
16701679 let rhs = TimeDelta :: from_std ( rhs)
16711680 . expect ( "overflow converting from core::time::Duration to TimeDelta" ) ;
@@ -1687,6 +1696,7 @@ impl<Tz: TimeZone> Sub<Duration> for DateTime<Tz> {
16871696/// Consider using [`DateTime<Tz>::checked_sub_signed`] to get an `Option` instead.
16881697impl < Tz : TimeZone > SubAssign < TimeDelta > for DateTime < Tz > {
16891698 #[ inline]
1699+ #[ track_caller]
16901700 fn sub_assign ( & mut self , rhs : TimeDelta ) {
16911701 let datetime =
16921702 self . datetime . checked_sub_signed ( rhs) . expect ( "`DateTime - TimeDelta` overflowed" ) ;
@@ -1707,6 +1717,7 @@ impl<Tz: TimeZone> SubAssign<TimeDelta> for DateTime<Tz> {
17071717/// Consider using [`DateTime<Tz>::checked_sub_signed`] to get an `Option` instead.
17081718impl < Tz : TimeZone > SubAssign < Duration > for DateTime < Tz > {
17091719 #[ inline]
1720+ #[ track_caller]
17101721 fn sub_assign ( & mut self , rhs : Duration ) {
17111722 let rhs = TimeDelta :: from_std ( rhs)
17121723 . expect ( "overflow converting from core::time::Duration to TimeDelta" ) ;
@@ -1723,6 +1734,7 @@ impl<Tz: TimeZone> Sub<FixedOffset> for DateTime<Tz> {
17231734 type Output = DateTime < Tz > ;
17241735
17251736 #[ inline]
1737+ #[ track_caller]
17261738 fn sub ( mut self , rhs : FixedOffset ) -> DateTime < Tz > {
17271739 self . datetime =
17281740 self . naive_utc ( ) . checked_sub_offset ( rhs) . expect ( "`DateTime - FixedOffset` overflowed" ) ;
@@ -1746,6 +1758,7 @@ impl<Tz: TimeZone> Sub<FixedOffset> for DateTime<Tz> {
17461758impl < Tz : TimeZone > Sub < Months > for DateTime < Tz > {
17471759 type Output = DateTime < Tz > ;
17481760
1761+ #[ track_caller]
17491762 fn sub ( self , rhs : Months ) -> Self :: Output {
17501763 self . checked_sub_months ( rhs) . expect ( "`DateTime - Months` out of range" )
17511764 }
@@ -1782,6 +1795,7 @@ impl<Tz: TimeZone> Sub<&DateTime<Tz>> for DateTime<Tz> {
17821795impl < Tz : TimeZone > Add < Days > for DateTime < Tz > {
17831796 type Output = DateTime < Tz > ;
17841797
1798+ #[ track_caller]
17851799 fn add ( self , days : Days ) -> Self :: Output {
17861800 self . checked_add_days ( days) . expect ( "`DateTime + Days` out of range" )
17871801 }
@@ -1800,6 +1814,7 @@ impl<Tz: TimeZone> Add<Days> for DateTime<Tz> {
18001814impl < Tz : TimeZone > Sub < Days > for DateTime < Tz > {
18011815 type Output = DateTime < Tz > ;
18021816
1817+ #[ track_caller]
18031818 fn sub ( self , days : Days ) -> Self :: Output {
18041819 self . checked_sub_days ( days) . expect ( "`DateTime - Days` out of range" )
18051820 }
0 commit comments