about summary refs log tree commit diff
path: root/src
diff options
context:
space:
mode:
authorOliver Scherer <github35764891676564198441@oli-obk.de>2019-05-11 16:04:14 +0200
committerOliver Scherer <github35764891676564198441@oli-obk.de>2019-05-25 10:07:02 +0200
commita0275e3bf3aa72b40f8f9cb1b3b64c620569377c (patch)
tree338df78c75864964589bd6a967da414f7c2a491d /src
parentdd327951eb61b95e28649768ae7e67aaba4e2ece (diff)
Only print integers in symbol path's constants
Diffstat (limited to 'src')
-rw-r--r--src/librustc_codegen_utils/symbol_names.rs12
1 files changed, 10 insertions, 2 deletions
diff --git a/src/librustc_codegen_utils/symbol_names.rs b/src/librustc_codegen_utils/symbol_names.rs
index f2f9ac8931f..86407162907 100644
--- a/src/librustc_codegen_utils/symbol_names.rs
+++ b/src/librustc_codegen_utils/symbol_names.rs
@@ -96,6 +96,7 @@ use rustc::ty::print::{PrettyPrinter, Printer, Print};
 use rustc::ty::query::Providers;
 use rustc::ty::subst::{Kind, SubstsRef, UnpackedKind};
 use rustc::ty::{self, Ty, TyCtxt, TypeFoldable};
+use rustc::mir::interpret::{ConstValue, Scalar};
 use rustc::util::common::record_time;
 use rustc_data_structures::stable_hasher::{HashStable, StableHasher};
 use rustc_mir::monomorphize::item::{InstantiationMode, MonoItem, MonoItemExt};
@@ -438,10 +439,17 @@ impl Printer<'tcx, 'tcx> for SymbolPrinter<'_, 'tcx> {
     }
 
     fn print_const(
-        self,
+        mut self,
         ct: &'tcx ty::Const<'tcx>,
     ) -> Result<Self::Const, Self::Error> {
-        self.pretty_print_const(ct)
+        // only print integers
+        if let ConstValue::Scalar(Scalar::Bits { .. }) = ct.val {
+            if ct.ty.is_integral() {
+                return self.pretty_print_const(ct);
+            }
+        }
+        self.write_str("_")?;
+        Ok(self)
     }
 
     fn path_crate(