From a0275e3bf3aa72b40f8f9cb1b3b64c620569377c Mon Sep 17 00:00:00 2001 From: Oliver Scherer Date: Sat, 11 May 2019 16:04:14 +0200 Subject: [PATCH] Only print integers in symbol path's constants --- src/librustc_codegen_utils/symbol_names.rs | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/src/librustc_codegen_utils/symbol_names.rs b/src/librustc_codegen_utils/symbol_names.rs index f2f9ac8931fee..864071629078a 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.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(