about summary refs log tree commit diff
diff options
context:
space:
mode:
authorPeter Todd <pete@petertodd.org>2025-02-18 04:56:03 +0000
committerPeter Todd <pete@petertodd.org>2025-02-18 04:56:03 +0000
commit4e4cb10b846c71f2993d2e4babbc026ff68bab3b (patch)
tree1126f77cba2c57f5f8b1117915c4ae4ea12095cc
parentde91711756133f11f7861dd099c001eaff0aafaa (diff)
downloadrust-4e4cb10b846c71f2993d2e4babbc026ff68bab3b.tar.gz
rust-4e4cb10b846c71f2993d2e4babbc026ff68bab3b.zip
Add #[track_caller] to Duration Div impl
Previously the location of the divide-by-zero error condition would be
attributed to the code in the rust standard library, eg:

	thread 'main' panicked at /home/user/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/time.rs:1172:31:
	divide by zero error when dividing duration by scalar

With #[track_caller] the error is correctly attributed to the callee.
-rw-r--r--library/core/src/time.rs2
1 files changed, 2 insertions, 0 deletions
diff --git a/library/core/src/time.rs b/library/core/src/time.rs
index 22bd46c567e..8b211b442ea 100644
--- a/library/core/src/time.rs
+++ b/library/core/src/time.rs
@@ -1168,6 +1168,7 @@ impl Div<u32> for Duration {
     type Output = Duration;
 
     #[inline]
+    #[track_caller]
     fn div(self, rhs: u32) -> Duration {
         self.checked_div(rhs).expect("divide by zero error when dividing duration by scalar")
     }
@@ -1176,6 +1177,7 @@ impl Div<u32> for Duration {
 #[stable(feature = "time_augmented_assignment", since = "1.9.0")]
 impl DivAssign<u32> for Duration {
     #[inline]
+    #[track_caller]
     fn div_assign(&mut self, rhs: u32) {
         *self = *self / rhs;
     }