From 4e4cb10b846c71f2993d2e4babbc026ff68bab3b Mon Sep 17 00:00:00 2001 From: Peter Todd Date: Tue, 18 Feb 2025 04:56:03 +0000 Subject: [PATCH] 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. --- library/core/src/time.rs | 2 ++ 1 file changed, 2 insertions(+) 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 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 for Duration { #[stable(feature = "time_augmented_assignment", since = "1.9.0")] impl DivAssign for Duration { #[inline] + #[track_caller] fn div_assign(&mut self, rhs: u32) { *self = *self / rhs; }