Make MutexGuard's Debug implementation more useful.

Fixes #57702.
This commit is contained in:
Mara Bos 2019-01-17 18:57:46 +01:00
parent daa53a52a2
commit 7b55711988

View File

@ -450,9 +450,13 @@ impl<'a, T: ?Sized> Drop for MutexGuard<'a, T> {
#[stable(feature = "std_debug", since = "1.16.0")]
impl<'a, T: ?Sized + fmt::Debug> fmt::Debug for MutexGuard<'a, T> {
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
f.debug_struct("MutexGuard")
.field("lock", &self.__lock)
.finish()
struct MutexFmt<'a, T: ?Sized>(&'a MutexGuard<'a, T>);
impl<'a, T: ?Sized + fmt::Debug> fmt::Debug for MutexFmt<'a, T> {
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
f.debug_struct("Mutex").field("data", &&*self.0).finish()
}
}
f.debug_struct("MutexGuard").field("lock", &MutexFmt(self)).finish()
}
}