better display for locations in panic messages
This commit is contained in:
1 parent
9154b0f8ea
commit
60d6137f39
1 file changed
+20
-2
@@ -42,6 +42,22 @@ pub mod diagnostics {
|
||||
pub kind: BorrowKind,
|
||||
}
|
||||
|
||||
impl PreviousBorrow {
|
||||
pub fn display_opt(value: &Option<Self>) -> String {
|
||||
value
|
||||
.as_ref()
|
||||
.map(|value| value.to_string())
|
||||
.unwrap_or_default()
|
||||
}
|
||||
}
|
||||
|
||||
impl std::fmt::Display for PreviousBorrow {
|
||||
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
|
||||
let Self { location, kind } = self;
|
||||
write!(f, "{location} ({kind:?})")
|
||||
}
|
||||
}
|
||||
|
||||
impl<T> super::UseSharedState<T> {
|
||||
#[cfg_attr(debug_assertions, track_caller)]
|
||||
#[cfg_attr(debug_assertions, inline(never))]
|
||||
@@ -90,7 +106,8 @@ pub mod error {
|
||||
#[cfg_attr(
|
||||
debug_assertions,
|
||||
error(
|
||||
"[{location}] {type_name} is already borrowed at [{previous_borrow:?}], so it cannot be borrowed mutably."
|
||||
"[{location}] {type_name} is already borrowed at [{previous_borrow}], so it cannot be borrowed mutably.",
|
||||
previous_borrow = super::diagnostics::PreviousBorrow::display_opt(.previous_borrow)
|
||||
)
|
||||
)]
|
||||
#[cfg_attr(
|
||||
@@ -108,7 +125,8 @@ pub mod error {
|
||||
#[cfg_attr(
|
||||
debug_assertions,
|
||||
error(
|
||||
"[{location}] {type_name} is already borrowed mutably at [{previous_borrow:?}], so it cannot be borrowed anymore."
|
||||
"[{location}] {type_name} is already borrowed mutably at [{previous_borrow}], so it cannot be borrowed anymore.",
|
||||
previous_borrow = super::diagnostics::PreviousBorrow::display_opt(.previous_borrow)
|
||||
)
|
||||
)]
|
||||
#[cfg_attr(
|
||||
|
||||
Reference in new issue
Block a user