about summary refs log tree commit diff
diff options
context:
space:
mode:
authorben <benlewisj@gmail.com>2019-10-10 22:01:55 +1300
committerben <benlewisj@gmail.com>2019-10-10 22:01:55 +1300
commit8569dd1db985509cd235fafdd962aa52ced68e35 (patch)
tree98306d8e5999283d8db04035ec4de9e607edd1b9
parent89cc0467a2a5af872f05830be68b60adf4669e01 (diff)
downloadrust-8569dd1db985509cd235fafdd962aa52ced68e35.tar.gz
rust-8569dd1db985509cd235fafdd962aa52ced68e35.zip
Preserve output of raw pointers in mir dump.
-rw-r--r--src/librustc/mir/mod.rs9
1 files changed, 8 insertions, 1 deletions
diff --git a/src/librustc/mir/mod.rs b/src/librustc/mir/mod.rs
index 2b5212cb7ef..9ac1465cb0b 100644
--- a/src/librustc/mir/mod.rs
+++ b/src/librustc/mir/mod.rs
@@ -2602,7 +2602,14 @@ impl<'tcx> Debug for Constant<'tcx> {
 impl<'tcx> Display for Constant<'tcx> {
     fn fmt(&self, fmt: &mut Formatter<'_>) -> fmt::Result {
         write!(fmt, "const ")?;
-        write!(fmt, "{}", self.literal)
+        // FIXME make the default pretty printing of raw pointers more detailed. Here we output the
+        // debug representation of raw pointers, so that the raw pointers in the mir dump output are
+        // detailed and just not '{pointer}'.
+        if let ty::RawPtr(_) = self.literal.ty.kind {
+            write!(fmt, "{:?} : {}", self.literal.val, self.literal.ty)
+        } else {
+            write!(fmt, "{}", self.literal)
+        }
     }
 }