Skip to content

Commit

Permalink
Rollup merge of #112444 - compiler-errors:intern-debug, r=nnethercote
Browse files Browse the repository at this point in the history
Don't debug-print `Interned` or `PrivateZst`

Instead of, e.g.

`PredefinedOpaques(Interned(PredefinedOpaquesData { ... }, PrivateZst))`

print:

`PredefinedOpaques(PredefinedOpaquesData { ... })`

Mostly observable in debug logs, or ICE backtraces where I saw this.

r? ``@nnethercote``
  • Loading branch information
matthiaskrgr authored Jun 9, 2023
2 parents a4490b1 + 80e9ca9 commit 009fc56
Showing 1 changed file with 7 additions and 1 deletion.
8 changes: 7 additions & 1 deletion compiler/rustc_data_structures/src/intern.rs
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
use crate::stable_hasher::{HashStable, StableHasher};
use std::cmp::Ordering;
use std::fmt::{self, Debug};
use std::hash::{Hash, Hasher};
use std::ops::Deref;
use std::ptr;
Expand All @@ -20,7 +21,6 @@ mod private {
/// The `PrivateZst` field means you can pattern match with `Interned(v, _)`
/// but you can only construct a `Interned` with `new_unchecked`, and not
/// directly.
#[derive(Debug)]
#[rustc_pass_by_value]
pub struct Interned<'a, T>(pub &'a T, pub private::PrivateZst);

Expand Down Expand Up @@ -108,5 +108,11 @@ where
}
}

impl<T: Debug> Debug for Interned<'_, T> {
fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
self.0.fmt(f)
}
}

#[cfg(test)]
mod tests;

0 comments on commit 009fc56

Please sign in to comment.