From 32ee368c867d2aa977ebaca79b4b5ed8ed689fa3 Mon Sep 17 00:00:00 2001 From: Mara Bos Date: Thu, 3 Jun 2021 15:41:48 +0200 Subject: [PATCH 1/2] Show `::{{constructor}}` in std::any::type_name(). --- compiler/rustc_mir/src/interpret/intrinsics/type_name.rs | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) diff --git a/compiler/rustc_mir/src/interpret/intrinsics/type_name.rs b/compiler/rustc_mir/src/interpret/intrinsics/type_name.rs index ae5e78ee33f47..2707d138e6a2c 100644 --- a/compiler/rustc_mir/src/interpret/intrinsics/type_name.rs +++ b/compiler/rustc_mir/src/interpret/intrinsics/type_name.rs @@ -1,5 +1,5 @@ use rustc_hir::def_id::CrateNum; -use rustc_hir::definitions::{DefPathData, DisambiguatedDefPathData}; +use rustc_hir::definitions::DisambiguatedDefPathData; use rustc_middle::mir::interpret::Allocation; use rustc_middle::ty::{ self, @@ -127,11 +127,6 @@ impl<'tcx> Printer<'tcx> for AbsolutePathPrinter<'tcx> { ) -> Result { self = print_prefix(self)?; - // Skip `::{{constructor}}` on tuple/unit structs. - if disambiguated_data.data == DefPathData::Ctor { - return Ok(self); - } - write!(self.path, "::{}", disambiguated_data.data).unwrap(); Ok(self) From e3b19e5c25d2de305939a5cc73dcbdf3ae64bd94 Mon Sep 17 00:00:00 2001 From: Mara Bos Date: Thu, 3 Jun 2021 15:48:33 +0200 Subject: [PATCH 2/2] Add test for issue 84666. --- library/core/tests/any.rs | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/library/core/tests/any.rs b/library/core/tests/any.rs index b0dc99034644a..b36d6f0d40405 100644 --- a/library/core/tests/any.rs +++ b/library/core/tests/any.rs @@ -114,3 +114,16 @@ fn any_unsized() { fn is_any() {} is_any::<[i32]>(); } + +#[test] +fn distinct_type_names() { + // https://github.com/rust-lang/rust/issues/84666 + + struct Velocity(f32, f32); + + fn type_name_of_val(_: T) -> &'static str { + type_name::() + } + + assert_ne!(type_name_of_val(Velocity), type_name_of_val(Velocity(0.0, -9.8)),); +}