From f1878d19faf9472f8860a3ff4fe605fdf93cef2c Mon Sep 17 00:00:00 2001 From: marmeladema Date: Mon, 31 Aug 2020 18:11:44 +0100 Subject: Move from {{closure}}#0 syntax to {closure#0} for (def) path components --- compiler/rustc_codegen_ssa/src/debuginfo/type_names.rs | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) (limited to 'compiler/rustc_codegen_ssa/src/debuginfo') diff --git a/compiler/rustc_codegen_ssa/src/debuginfo/type_names.rs b/compiler/rustc_codegen_ssa/src/debuginfo/type_names.rs index 0c0f1bc681c..e227f9df000 100644 --- a/compiler/rustc_codegen_ssa/src/debuginfo/type_names.rs +++ b/compiler/rustc_codegen_ssa/src/debuginfo/type_names.rs @@ -3,8 +3,11 @@ use rustc_data_structures::fx::FxHashSet; use rustc_hir as hir; use rustc_hir::def_id::DefId; +use rustc_hir::definitions::DefPathDataName; use rustc_middle::ty::{self, subst::SubstsRef, Ty, TyCtxt}; +use std::fmt::Write; + // Compute the name of the type as it should be stored in debuginfo. Does not do // any caching, i.e., calling the function twice with the same type will also do // the work twice. The `qualified` parameter only affects the first level of the @@ -229,7 +232,12 @@ pub fn push_debuginfo_type_name<'tcx>( output.push_str(&tcx.crate_name(def_id.krate).as_str()); for path_element in tcx.def_path(def_id).data { output.push_str("::"); - output.push_str(&path_element.data.as_symbol().as_str()); + match path_element.data.get_name() { + DefPathDataName::Named(name) => output.push_str(&name.as_str()), + DefPathDataName::Anon { namespace } => { + write!(output, "{{{{{}}}}}", namespace).unwrap() + } + } } } else { output.push_str(&tcx.item_name(def_id).as_str()); -- cgit 1.4.1-3-g733a5