From 5ca93742fe36309502a764ff8c14e6e6e71da1b8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tomasz=20Mi=C4=85sko?= Date: Fri, 25 Feb 2022 00:00:00 +0000 Subject: [PATCH 1/3] Test legacy mangling of bool, char and integer constants The existing v0 tests have been slightly adjusted for compatibility with legacy mangler, which requires an item to have an ancestor in a value namespace or a type namespace to produce a symbol for it. In v0 mangling this results in an extra `Nv` component. --- .../const-generics-demangling.legacy.stderr | 74 +++++++++++++++++++ .../symbol-names/const-generics-demangling.rs | 68 +++++++++++------ .../const-generics-demangling.stderr | 74 ------------------- .../const-generics-demangling.v0.stderr | 74 +++++++++++++++++++ 4 files changed, 194 insertions(+), 96 deletions(-) create mode 100644 src/test/ui/symbol-names/const-generics-demangling.legacy.stderr delete mode 100644 src/test/ui/symbol-names/const-generics-demangling.stderr create mode 100644 src/test/ui/symbol-names/const-generics-demangling.v0.stderr diff --git a/src/test/ui/symbol-names/const-generics-demangling.legacy.stderr b/src/test/ui/symbol-names/const-generics-demangling.legacy.stderr new file mode 100644 index 0000000000000..bebbb7aac981c --- /dev/null +++ b/src/test/ui/symbol-names/const-generics-demangling.legacy.stderr @@ -0,0 +1,74 @@ +error: symbol-name(_ZN1c21Unsigned$LT$11_u8$GT$1f17h[HASH]E) + --> $DIR/const-generics-demangling.rs:13:5 + | +LL | #[rustc_symbol_name] + | ^^^^^^^^^^^^^^^^^^^^ + +error: demangling(c::Unsigned<11_u8>::f::h[HASH]) + --> $DIR/const-generics-demangling.rs:13:5 + | +LL | #[rustc_symbol_name] + | ^^^^^^^^^^^^^^^^^^^^ + +error: demangling-alt(c::Unsigned<11_u8>::f) + --> $DIR/const-generics-demangling.rs:13:5 + | +LL | #[rustc_symbol_name] + | ^^^^^^^^^^^^^^^^^^^^ + +error: symbol-name(_ZN1c22Signed$LT$.152_i16$GT$1f17h[HASH]E) + --> $DIR/const-generics-demangling.rs:26:5 + | +LL | #[rustc_symbol_name] + | ^^^^^^^^^^^^^^^^^^^^ + +error: demangling(c::Signed<.152_i16>::f::h[HASH]) + --> $DIR/const-generics-demangling.rs:26:5 + | +LL | #[rustc_symbol_name] + | ^^^^^^^^^^^^^^^^^^^^ + +error: demangling-alt(c::Signed<.152_i16>::f) + --> $DIR/const-generics-demangling.rs:26:5 + | +LL | #[rustc_symbol_name] + | ^^^^^^^^^^^^^^^^^^^^ + +error: symbol-name(_ZN1c13Bool$LT$_$GT$1f17h[HASH]E) + --> $DIR/const-generics-demangling.rs:39:5 + | +LL | #[rustc_symbol_name] + | ^^^^^^^^^^^^^^^^^^^^ + +error: demangling(c::Bool<_>::f::h[HASH]) + --> $DIR/const-generics-demangling.rs:39:5 + | +LL | #[rustc_symbol_name] + | ^^^^^^^^^^^^^^^^^^^^ + +error: demangling-alt(c::Bool<_>::f) + --> $DIR/const-generics-demangling.rs:39:5 + | +LL | #[rustc_symbol_name] + | ^^^^^^^^^^^^^^^^^^^^ + +error: symbol-name(_ZN1c13Char$LT$_$GT$1f17h[HASH]E) + --> $DIR/const-generics-demangling.rs:52:5 + | +LL | #[rustc_symbol_name] + | ^^^^^^^^^^^^^^^^^^^^ + +error: demangling(c::Char<_>::f::h[HASH]) + --> $DIR/const-generics-demangling.rs:52:5 + | +LL | #[rustc_symbol_name] + | ^^^^^^^^^^^^^^^^^^^^ + +error: demangling-alt(c::Char<_>::f) + --> $DIR/const-generics-demangling.rs:52:5 + | +LL | #[rustc_symbol_name] + | ^^^^^^^^^^^^^^^^^^^^ + +error: aborting due to 12 previous errors + diff --git a/src/test/ui/symbol-names/const-generics-demangling.rs b/src/test/ui/symbol-names/const-generics-demangling.rs index 5c40c391a9e0b..4a04eca67fd35 100644 --- a/src/test/ui/symbol-names/const-generics-demangling.rs +++ b/src/test/ui/symbol-names/const-generics-demangling.rs @@ -1,38 +1,62 @@ // build-fail -// compile-flags: -C symbol-mangling-version=v0 --crate-name=c -// normalize-stderr-test: "c\[.*?\]" -> "c[HASH]" +// revisions: legacy v0 +// compile-flags: --crate-name=c +//[legacy]compile-flags: -C symbol-mangling-version=legacy -Z unstable-options +// [v0]compile-flags: -C symbol-mangling-version=v0 +//[legacy]normalize-stderr-test: "h[[:xdigit:]]{16}" -> "h[HASH]" +// [v0]normalize-stderr-test: "c\[.*?\]" -> "c[HASH]" #![feature(rustc_attrs)] pub struct Unsigned; -#[rustc_symbol_name] -//~^ ERROR symbol-name(_RMCs -//~| ERROR demangling(>) -impl Unsigned<11> {} +impl Unsigned<11> { + #[rustc_symbol_name] + //[v0]~^ ERROR symbol-name(_RNvMCs + //[v0]~| ERROR demangling(>::f) + //[legacy]~^^^^ ERROR symbol-name(_ZN1c21Unsigned$LT$11_u8$GT$ + //[legacy]~| ERROR demangling(c::Unsigned<11_u8>::f:: + //[legacy]~| ERROR demangling-alt(c::Unsigned<11_u8>::f) + fn f() {} +} pub struct Signed; -#[rustc_symbol_name] -//~^ ERROR symbol-name(_RMs_Cs -//~| ERROR demangling(>) -impl Signed<-152> {} +impl Signed<-152> { + #[rustc_symbol_name] + //[v0]~^ ERROR symbol-name(_RNvMs_Cs + //[v0]~| ERROR demangling(>::f) + //[legacy]~^^^^ ERROR symbol-name(_ZN1c22Signed$LT$.152_i16$GT$ + //[legacy]~| ERROR demangling(c::Signed<.152_i16>::f:: + //[legacy]~| ERROR demangling-alt(c::Signed<.152_i16>::f) + fn f() {} +} pub struct Bool; -#[rustc_symbol_name] -//~^ ERROR symbol-name(_RMs0_Cs -//~| ERROR demangling(>) -impl Bool {} +impl Bool { + #[rustc_symbol_name] + //[v0]~^ ERROR symbol-name(_RNvMs0_Cs + //[v0]~| ERROR demangling(>::f) + //[legacy]~^^^^ ERROR symbol-name(_ZN1c13Bool$LT$_$GT$ + //[legacy]~| ERROR demangling(c::Bool<_>::f:: + //[legacy]~| ERROR demangling-alt(c::Bool<_>::f) + fn f() {} +} pub struct Char; -#[rustc_symbol_name] -//~^ ERROR symbol-name(_RMs1_Cs -//~| ERROR demangling(>) -impl Char<'∂'> {} +impl Char<'∂'> { + #[rustc_symbol_name] + //[v0]~^ ERROR symbol-name(_RNvMs1_Cs + //[v0]~| ERROR demangling(>::f) + //[legacy]~^^^^ ERROR symbol-name(_ZN1c13Char$LT$_$GT$ + //[legacy]~| ERROR demangling(c::Char<_>::f:: + //[legacy]~| ERROR demangling-alt(c::Char<_>::f) + fn f() {} +} fn main() {} diff --git a/src/test/ui/symbol-names/const-generics-demangling.stderr b/src/test/ui/symbol-names/const-generics-demangling.stderr deleted file mode 100644 index 8aa08b8a22c47..0000000000000 --- a/src/test/ui/symbol-names/const-generics-demangling.stderr +++ /dev/null @@ -1,74 +0,0 @@ -error: symbol-name(_RMCsCRATE_HASH_1cINtB_8UnsignedKhb_E) - --> $DIR/const-generics-demangling.rs:8:1 - | -LL | #[rustc_symbol_name] - | ^^^^^^^^^^^^^^^^^^^^ - -error: demangling(>) - --> $DIR/const-generics-demangling.rs:8:1 - | -LL | #[rustc_symbol_name] - | ^^^^^^^^^^^^^^^^^^^^ - -error: demangling-alt(>) - --> $DIR/const-generics-demangling.rs:8:1 - | -LL | #[rustc_symbol_name] - | ^^^^^^^^^^^^^^^^^^^^ - -error: symbol-name(_RMs_CsCRATE_HASH_1cINtB_6SignedKsn98_E) - --> $DIR/const-generics-demangling.rs:16:1 - | -LL | #[rustc_symbol_name] - | ^^^^^^^^^^^^^^^^^^^^ - -error: demangling(>) - --> $DIR/const-generics-demangling.rs:16:1 - | -LL | #[rustc_symbol_name] - | ^^^^^^^^^^^^^^^^^^^^ - -error: demangling-alt(>) - --> $DIR/const-generics-demangling.rs:16:1 - | -LL | #[rustc_symbol_name] - | ^^^^^^^^^^^^^^^^^^^^ - -error: symbol-name(_RMs0_CsCRATE_HASH_1cINtB_4BoolKb1_E) - --> $DIR/const-generics-demangling.rs:24:1 - | -LL | #[rustc_symbol_name] - | ^^^^^^^^^^^^^^^^^^^^ - -error: demangling(>) - --> $DIR/const-generics-demangling.rs:24:1 - | -LL | #[rustc_symbol_name] - | ^^^^^^^^^^^^^^^^^^^^ - -error: demangling-alt(>) - --> $DIR/const-generics-demangling.rs:24:1 - | -LL | #[rustc_symbol_name] - | ^^^^^^^^^^^^^^^^^^^^ - -error: symbol-name(_RMs1_CsCRATE_HASH_1cINtB_4CharKc2202_E) - --> $DIR/const-generics-demangling.rs:32:1 - | -LL | #[rustc_symbol_name] - | ^^^^^^^^^^^^^^^^^^^^ - -error: demangling(>) - --> $DIR/const-generics-demangling.rs:32:1 - | -LL | #[rustc_symbol_name] - | ^^^^^^^^^^^^^^^^^^^^ - -error: demangling-alt(>) - --> $DIR/const-generics-demangling.rs:32:1 - | -LL | #[rustc_symbol_name] - | ^^^^^^^^^^^^^^^^^^^^ - -error: aborting due to 12 previous errors - diff --git a/src/test/ui/symbol-names/const-generics-demangling.v0.stderr b/src/test/ui/symbol-names/const-generics-demangling.v0.stderr new file mode 100644 index 0000000000000..7238a849332ad --- /dev/null +++ b/src/test/ui/symbol-names/const-generics-demangling.v0.stderr @@ -0,0 +1,74 @@ +error: symbol-name(_RNvMCsCRATE_HASH_1cINtB_8UnsignedKhb_E1f) + --> $DIR/const-generics-demangling.rs:13:5 + | +LL | #[rustc_symbol_name] + | ^^^^^^^^^^^^^^^^^^^^ + +error: demangling(>::f) + --> $DIR/const-generics-demangling.rs:13:5 + | +LL | #[rustc_symbol_name] + | ^^^^^^^^^^^^^^^^^^^^ + +error: demangling-alt(>::f) + --> $DIR/const-generics-demangling.rs:13:5 + | +LL | #[rustc_symbol_name] + | ^^^^^^^^^^^^^^^^^^^^ + +error: symbol-name(_RNvMs_CsCRATE_HASH_1cINtB_6SignedKsn98_E1f) + --> $DIR/const-generics-demangling.rs:26:5 + | +LL | #[rustc_symbol_name] + | ^^^^^^^^^^^^^^^^^^^^ + +error: demangling(>::f) + --> $DIR/const-generics-demangling.rs:26:5 + | +LL | #[rustc_symbol_name] + | ^^^^^^^^^^^^^^^^^^^^ + +error: demangling-alt(>::f) + --> $DIR/const-generics-demangling.rs:26:5 + | +LL | #[rustc_symbol_name] + | ^^^^^^^^^^^^^^^^^^^^ + +error: symbol-name(_RNvMs0_CsCRATE_HASH_1cINtB_4BoolKb1_E1f) + --> $DIR/const-generics-demangling.rs:39:5 + | +LL | #[rustc_symbol_name] + | ^^^^^^^^^^^^^^^^^^^^ + +error: demangling(>::f) + --> $DIR/const-generics-demangling.rs:39:5 + | +LL | #[rustc_symbol_name] + | ^^^^^^^^^^^^^^^^^^^^ + +error: demangling-alt(>::f) + --> $DIR/const-generics-demangling.rs:39:5 + | +LL | #[rustc_symbol_name] + | ^^^^^^^^^^^^^^^^^^^^ + +error: symbol-name(_RNvMs1_CsCRATE_HASH_1cINtB_4CharKc2202_E1f) + --> $DIR/const-generics-demangling.rs:52:5 + | +LL | #[rustc_symbol_name] + | ^^^^^^^^^^^^^^^^^^^^ + +error: demangling(>::f) + --> $DIR/const-generics-demangling.rs:52:5 + | +LL | #[rustc_symbol_name] + | ^^^^^^^^^^^^^^^^^^^^ + +error: demangling-alt(>::f) + --> $DIR/const-generics-demangling.rs:52:5 + | +LL | #[rustc_symbol_name] + | ^^^^^^^^^^^^^^^^^^^^ + +error: aborting due to 12 previous errors + From f6634cc3c2adb534bb564f3fa49be7cfe82744c3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tomasz=20Mi=C4=85sko?= Date: Fri, 25 Feb 2022 00:00:00 +0000 Subject: [PATCH 2/3] Test legacy type mangling --- src/test/ui/symbol-names/types.legacy.stderr | 470 +++++++++++++++++++ src/test/ui/symbol-names/types.rs | 170 +++++++ 2 files changed, 640 insertions(+) create mode 100644 src/test/ui/symbol-names/types.legacy.stderr create mode 100644 src/test/ui/symbol-names/types.rs diff --git a/src/test/ui/symbol-names/types.legacy.stderr b/src/test/ui/symbol-names/types.legacy.stderr new file mode 100644 index 0000000000000..a4984d5629f7d --- /dev/null +++ b/src/test/ui/symbol-names/types.legacy.stderr @@ -0,0 +1,470 @@ +error: symbol-name(_ZN1a1b16Type$LT$bool$GT$17h[HASH]E) + --> $DIR/types.rs:13:5 + | +LL | #[rustc_symbol_name] + | ^^^^^^^^^^^^^^^^^^^^ + +error: demangling(a::b::Type::h[HASH]) + --> $DIR/types.rs:13:5 + | +LL | #[rustc_symbol_name] + | ^^^^^^^^^^^^^^^^^^^^ + +error: demangling-alt(a::b::Type) + --> $DIR/types.rs:13:5 + | +LL | #[rustc_symbol_name] + | ^^^^^^^^^^^^^^^^^^^^ + +error: symbol-name(_ZN1a1b16Type$LT$char$GT$17h[HASH]E) + --> $DIR/types.rs:19:5 + | +LL | #[rustc_symbol_name] + | ^^^^^^^^^^^^^^^^^^^^ + +error: demangling(a::b::Type::h[HASH]) + --> $DIR/types.rs:19:5 + | +LL | #[rustc_symbol_name] + | ^^^^^^^^^^^^^^^^^^^^ + +error: demangling-alt(a::b::Type) + --> $DIR/types.rs:19:5 + | +LL | #[rustc_symbol_name] + | ^^^^^^^^^^^^^^^^^^^^ + +error: symbol-name(_ZN1a1b14Type$LT$i8$GT$17h[HASH]E) + --> $DIR/types.rs:25:5 + | +LL | #[rustc_symbol_name] + | ^^^^^^^^^^^^^^^^^^^^ + +error: demangling(a::b::Type::h[HASH]) + --> $DIR/types.rs:25:5 + | +LL | #[rustc_symbol_name] + | ^^^^^^^^^^^^^^^^^^^^ + +error: demangling-alt(a::b::Type) + --> $DIR/types.rs:25:5 + | +LL | #[rustc_symbol_name] + | ^^^^^^^^^^^^^^^^^^^^ + +error: symbol-name(_ZN1a1b15Type$LT$i16$GT$17h[HASH]E) + --> $DIR/types.rs:31:5 + | +LL | #[rustc_symbol_name] + | ^^^^^^^^^^^^^^^^^^^^ + +error: demangling(a::b::Type::h[HASH]) + --> $DIR/types.rs:31:5 + | +LL | #[rustc_symbol_name] + | ^^^^^^^^^^^^^^^^^^^^ + +error: demangling-alt(a::b::Type) + --> $DIR/types.rs:31:5 + | +LL | #[rustc_symbol_name] + | ^^^^^^^^^^^^^^^^^^^^ + +error: symbol-name(_ZN1a1b15Type$LT$i32$GT$17h[HASH]E) + --> $DIR/types.rs:37:5 + | +LL | #[rustc_symbol_name] + | ^^^^^^^^^^^^^^^^^^^^ + +error: demangling(a::b::Type::h[HASH]) + --> $DIR/types.rs:37:5 + | +LL | #[rustc_symbol_name] + | ^^^^^^^^^^^^^^^^^^^^ + +error: demangling-alt(a::b::Type) + --> $DIR/types.rs:37:5 + | +LL | #[rustc_symbol_name] + | ^^^^^^^^^^^^^^^^^^^^ + +error: symbol-name(_ZN1a1b15Type$LT$i64$GT$17h[HASH]E) + --> $DIR/types.rs:43:5 + | +LL | #[rustc_symbol_name] + | ^^^^^^^^^^^^^^^^^^^^ + +error: demangling(a::b::Type::h[HASH]) + --> $DIR/types.rs:43:5 + | +LL | #[rustc_symbol_name] + | ^^^^^^^^^^^^^^^^^^^^ + +error: demangling-alt(a::b::Type) + --> $DIR/types.rs:43:5 + | +LL | #[rustc_symbol_name] + | ^^^^^^^^^^^^^^^^^^^^ + +error: symbol-name(_ZN1a1b14Type$LT$u8$GT$17h[HASH]E) + --> $DIR/types.rs:49:5 + | +LL | #[rustc_symbol_name] + | ^^^^^^^^^^^^^^^^^^^^ + +error: demangling(a::b::Type::h[HASH]) + --> $DIR/types.rs:49:5 + | +LL | #[rustc_symbol_name] + | ^^^^^^^^^^^^^^^^^^^^ + +error: demangling-alt(a::b::Type) + --> $DIR/types.rs:49:5 + | +LL | #[rustc_symbol_name] + | ^^^^^^^^^^^^^^^^^^^^ + +error: symbol-name(_ZN1a1b15Type$LT$u16$GT$17h[HASH]E) + --> $DIR/types.rs:55:5 + | +LL | #[rustc_symbol_name] + | ^^^^^^^^^^^^^^^^^^^^ + +error: demangling(a::b::Type::h[HASH]) + --> $DIR/types.rs:55:5 + | +LL | #[rustc_symbol_name] + | ^^^^^^^^^^^^^^^^^^^^ + +error: demangling-alt(a::b::Type) + --> $DIR/types.rs:55:5 + | +LL | #[rustc_symbol_name] + | ^^^^^^^^^^^^^^^^^^^^ + +error: symbol-name(_ZN1a1b15Type$LT$u32$GT$17h[HASH]E) + --> $DIR/types.rs:61:5 + | +LL | #[rustc_symbol_name] + | ^^^^^^^^^^^^^^^^^^^^ + +error: demangling(a::b::Type::h[HASH]) + --> $DIR/types.rs:61:5 + | +LL | #[rustc_symbol_name] + | ^^^^^^^^^^^^^^^^^^^^ + +error: demangling-alt(a::b::Type) + --> $DIR/types.rs:61:5 + | +LL | #[rustc_symbol_name] + | ^^^^^^^^^^^^^^^^^^^^ + +error: symbol-name(_ZN1a1b15Type$LT$u64$GT$17h[HASH]E) + --> $DIR/types.rs:67:5 + | +LL | #[rustc_symbol_name] + | ^^^^^^^^^^^^^^^^^^^^ + +error: demangling(a::b::Type::h[HASH]) + --> $DIR/types.rs:67:5 + | +LL | #[rustc_symbol_name] + | ^^^^^^^^^^^^^^^^^^^^ + +error: demangling-alt(a::b::Type) + --> $DIR/types.rs:67:5 + | +LL | #[rustc_symbol_name] + | ^^^^^^^^^^^^^^^^^^^^ + +error: symbol-name(_ZN1a1b15Type$LT$f32$GT$17h[HASH]E) + --> $DIR/types.rs:73:5 + | +LL | #[rustc_symbol_name] + | ^^^^^^^^^^^^^^^^^^^^ + +error: demangling(a::b::Type::h[HASH]) + --> $DIR/types.rs:73:5 + | +LL | #[rustc_symbol_name] + | ^^^^^^^^^^^^^^^^^^^^ + +error: demangling-alt(a::b::Type) + --> $DIR/types.rs:73:5 + | +LL | #[rustc_symbol_name] + | ^^^^^^^^^^^^^^^^^^^^ + +error: symbol-name(_ZN1a1b15Type$LT$f64$GT$17h[HASH]E) + --> $DIR/types.rs:79:5 + | +LL | #[rustc_symbol_name] + | ^^^^^^^^^^^^^^^^^^^^ + +error: demangling(a::b::Type::h[HASH]) + --> $DIR/types.rs:79:5 + | +LL | #[rustc_symbol_name] + | ^^^^^^^^^^^^^^^^^^^^ + +error: demangling-alt(a::b::Type) + --> $DIR/types.rs:79:5 + | +LL | #[rustc_symbol_name] + | ^^^^^^^^^^^^^^^^^^^^ + +error: symbol-name(_ZN1a1b15Type$LT$str$GT$17h[HASH]E) + --> $DIR/types.rs:85:5 + | +LL | #[rustc_symbol_name] + | ^^^^^^^^^^^^^^^^^^^^ + +error: demangling(a::b::Type::h[HASH]) + --> $DIR/types.rs:85:5 + | +LL | #[rustc_symbol_name] + | ^^^^^^^^^^^^^^^^^^^^ + +error: demangling-alt(a::b::Type) + --> $DIR/types.rs:85:5 + | +LL | #[rustc_symbol_name] + | ^^^^^^^^^^^^^^^^^^^^ + +error: symbol-name(_ZN1a1b17Type$LT$$u21$$GT$17h[HASH]E) + --> $DIR/types.rs:91:5 + | +LL | #[rustc_symbol_name] + | ^^^^^^^^^^^^^^^^^^^^ + +error: demangling(a::b::Type::h[HASH]) + --> $DIR/types.rs:91:5 + | +LL | #[rustc_symbol_name] + | ^^^^^^^^^^^^^^^^^^^^ + +error: demangling-alt(a::b::Type) + --> $DIR/types.rs:91:5 + | +LL | #[rustc_symbol_name] + | ^^^^^^^^^^^^^^^^^^^^ + +error: symbol-name(_ZN1a1b20Type$LT$$LP$$RP$$GT$17h[HASH]E) + --> $DIR/types.rs:97:5 + | +LL | #[rustc_symbol_name] + | ^^^^^^^^^^^^^^^^^^^^ + +error: demangling(a::b::Type<()>::h[HASH]) + --> $DIR/types.rs:97:5 + | +LL | #[rustc_symbol_name] + | ^^^^^^^^^^^^^^^^^^^^ + +error: demangling-alt(a::b::Type<()>) + --> $DIR/types.rs:97:5 + | +LL | #[rustc_symbol_name] + | ^^^^^^^^^^^^^^^^^^^^ + +error: symbol-name(_ZN1a1b25Type$LT$$LP$u8$C$$RP$$GT$17h[HASH]E) + --> $DIR/types.rs:103:5 + | +LL | #[rustc_symbol_name] + | ^^^^^^^^^^^^^^^^^^^^ + +error: demangling(a::b::Type<(u8,)>::h[HASH]) + --> $DIR/types.rs:103:5 + | +LL | #[rustc_symbol_name] + | ^^^^^^^^^^^^^^^^^^^^ + +error: demangling-alt(a::b::Type<(u8,)>) + --> $DIR/types.rs:103:5 + | +LL | #[rustc_symbol_name] + | ^^^^^^^^^^^^^^^^^^^^ + +error: symbol-name(_ZN1a1b28Type$LT$$LP$u8$C$u16$RP$$GT$17h[HASH]E) + --> $DIR/types.rs:109:5 + | +LL | #[rustc_symbol_name] + | ^^^^^^^^^^^^^^^^^^^^ + +error: demangling(a::b::Type<(u8,u16)>::h[HASH]) + --> $DIR/types.rs:109:5 + | +LL | #[rustc_symbol_name] + | ^^^^^^^^^^^^^^^^^^^^ + +error: demangling-alt(a::b::Type<(u8,u16)>) + --> $DIR/types.rs:109:5 + | +LL | #[rustc_symbol_name] + | ^^^^^^^^^^^^^^^^^^^^ + +error: symbol-name(_ZN1a1b34Type$LT$$LP$u8$C$u16$C$u32$RP$$GT$17h[HASH]E) + --> $DIR/types.rs:115:5 + | +LL | #[rustc_symbol_name] + | ^^^^^^^^^^^^^^^^^^^^ + +error: demangling(a::b::Type<(u8,u16,u32)>::h[HASH]) + --> $DIR/types.rs:115:5 + | +LL | #[rustc_symbol_name] + | ^^^^^^^^^^^^^^^^^^^^ + +error: demangling-alt(a::b::Type<(u8,u16,u32)>) + --> $DIR/types.rs:115:5 + | +LL | #[rustc_symbol_name] + | ^^^^^^^^^^^^^^^^^^^^ + +error: symbol-name(_ZN1a1b28Type$LT$$BP$const$u20$u8$GT$17h[HASH]E) + --> $DIR/types.rs:121:5 + | +LL | #[rustc_symbol_name] + | ^^^^^^^^^^^^^^^^^^^^ + +error: demangling(a::b::Type<*const u8>::h[HASH]) + --> $DIR/types.rs:121:5 + | +LL | #[rustc_symbol_name] + | ^^^^^^^^^^^^^^^^^^^^ + +error: demangling-alt(a::b::Type<*const u8>) + --> $DIR/types.rs:121:5 + | +LL | #[rustc_symbol_name] + | ^^^^^^^^^^^^^^^^^^^^ + +error: symbol-name(_ZN1a1b26Type$LT$$BP$mut$u20$u8$GT$17h[HASH]E) + --> $DIR/types.rs:127:5 + | +LL | #[rustc_symbol_name] + | ^^^^^^^^^^^^^^^^^^^^ + +error: demangling(a::b::Type<*mut u8>::h[HASH]) + --> $DIR/types.rs:127:5 + | +LL | #[rustc_symbol_name] + | ^^^^^^^^^^^^^^^^^^^^ + +error: demangling-alt(a::b::Type<*mut u8>) + --> $DIR/types.rs:127:5 + | +LL | #[rustc_symbol_name] + | ^^^^^^^^^^^^^^^^^^^^ + +error: symbol-name(_ZN1a1b19Type$LT$$RF$str$GT$17h[HASH]E) + --> $DIR/types.rs:133:5 + | +LL | #[rustc_symbol_name] + | ^^^^^^^^^^^^^^^^^^^^ + +error: demangling(a::b::Type<&str>::h[HASH]) + --> $DIR/types.rs:133:5 + | +LL | #[rustc_symbol_name] + | ^^^^^^^^^^^^^^^^^^^^ + +error: demangling-alt(a::b::Type<&str>) + --> $DIR/types.rs:133:5 + | +LL | #[rustc_symbol_name] + | ^^^^^^^^^^^^^^^^^^^^ + +error: symbol-name(_ZN1a1b27Type$LT$$RF$mut$u20$str$GT$17h[HASH]E) + --> $DIR/types.rs:139:5 + | +LL | #[rustc_symbol_name] + | ^^^^^^^^^^^^^^^^^^^^ + +error: demangling(a::b::Type<&mut str>::h[HASH]) + --> $DIR/types.rs:139:5 + | +LL | #[rustc_symbol_name] + | ^^^^^^^^^^^^^^^^^^^^ + +error: demangling-alt(a::b::Type<&mut str>) + --> $DIR/types.rs:139:5 + | +LL | #[rustc_symbol_name] + | ^^^^^^^^^^^^^^^^^^^^ + +error: symbol-name(_ZN1a1b35Type$LT$$u5b$u8$u3b$$u20$0$u5d$$GT$17h[HASH]E) + --> $DIR/types.rs:145:5 + | +LL | #[rustc_symbol_name] + | ^^^^^^^^^^^^^^^^^^^^ + +error: demangling(a::b::Type<[u8; 0]>::h[HASH]) + --> $DIR/types.rs:145:5 + | +LL | #[rustc_symbol_name] + | ^^^^^^^^^^^^^^^^^^^^ + +error: demangling-alt(a::b::Type<[u8; 0]>) + --> $DIR/types.rs:145:5 + | +LL | #[rustc_symbol_name] + | ^^^^^^^^^^^^^^^^^^^^ + +error: symbol-name(_ZN1a1b22Type$LT$fn$LP$$RP$$GT$17h[HASH]E) + --> $DIR/types.rs:151:5 + | +LL | #[rustc_symbol_name] + | ^^^^^^^^^^^^^^^^^^^^ + +error: demangling(a::b::Type::h[HASH]) + --> $DIR/types.rs:151:5 + | +LL | #[rustc_symbol_name] + | ^^^^^^^^^^^^^^^^^^^^ + +error: demangling-alt(a::b::Type) + --> $DIR/types.rs:151:5 + | +LL | #[rustc_symbol_name] + | ^^^^^^^^^^^^^^^^^^^^ + +error: symbol-name(_ZN1a1b60Type$LT$unsafe$u20$extern$u20$$u22$C$u22$$u20$fn$LP$$RP$$GT$17h[HASH]E) + --> $DIR/types.rs:157:5 + | +LL | #[rustc_symbol_name] + | ^^^^^^^^^^^^^^^^^^^^ + +error: demangling(a::b::Type::h[HASH]) + --> $DIR/types.rs:157:5 + | +LL | #[rustc_symbol_name] + | ^^^^^^^^^^^^^^^^^^^^ + +error: demangling-alt(a::b::Type) + --> $DIR/types.rs:157:5 + | +LL | #[rustc_symbol_name] + | ^^^^^^^^^^^^^^^^^^^^ + +error: symbol-name(_ZN1a1b34Type$LT$$u5b$T$u3b$$u20$N$u5d$$GT$17h[HASH]E) + --> $DIR/types.rs:163:5 + | +LL | #[rustc_symbol_name] + | ^^^^^^^^^^^^^^^^^^^^ + +error: demangling(a::b::Type<[T; N]>::h[HASH]) + --> $DIR/types.rs:163:5 + | +LL | #[rustc_symbol_name] + | ^^^^^^^^^^^^^^^^^^^^ + +error: demangling-alt(a::b::Type<[T; N]>) + --> $DIR/types.rs:163:5 + | +LL | #[rustc_symbol_name] + | ^^^^^^^^^^^^^^^^^^^^ + +error: aborting due to 78 previous errors + diff --git a/src/test/ui/symbol-names/types.rs b/src/test/ui/symbol-names/types.rs new file mode 100644 index 0000000000000..e323625d66e76 --- /dev/null +++ b/src/test/ui/symbol-names/types.rs @@ -0,0 +1,170 @@ +// build-fail +// revisions: legacy +// compile-flags: --crate-name=a -C symbol-mangling-version=legacy -Z unstable-options +// +// normalize-stderr-test: "h[[:xdigit:]]{16}" -> "h[HASH]" + +#![feature(never_type)] +#![feature(rustc_attrs)] + +pub fn b() { + struct Type(T); + + #[rustc_symbol_name] + //~^ ERROR symbol-name(_ZN1a1b16Type$LT$bool$GT$ + //~| ERROR demangling(a::b::Type:: + //~| ERROR demangling-alt(a::b::Type) + impl Type {} + + #[rustc_symbol_name] + //~^ ERROR symbol-name(_ZN1a1b16Type$LT$char$GT$ + //~| ERROR demangling(a::b::Type:: + //~| ERROR demangling-alt(a::b::Type) + impl Type {} + + #[rustc_symbol_name] + //~^ ERROR symbol-name(_ZN1a1b14Type$LT$i8$GT$ + //~| ERROR demangling(a::b::Type:: + //~| ERROR demangling-alt(a::b::Type) + impl Type {} + + #[rustc_symbol_name] + //~^ ERROR symbol-name(_ZN1a1b15Type$LT$i16$GT$ + //~| ERROR demangling(a::b::Type:: + //~| ERROR demangling-alt(a::b::Type) + impl Type {} + + #[rustc_symbol_name] + //~^ ERROR symbol-name(_ZN1a1b15Type$LT$i32$GT$ + //~| ERROR demangling(a::b::Type:: + //~| ERROR demangling-alt(a::b::Type) + impl Type {} + + #[rustc_symbol_name] + //~^ ERROR symbol-name(_ZN1a1b15Type$LT$i64$GT$ + //~| ERROR demangling(a::b::Type:: + //~| ERROR demangling-alt(a::b::Type) + impl Type {} + + #[rustc_symbol_name] + //~^ ERROR symbol-name(_ZN1a1b14Type$LT$u8$GT$ + //~| ERROR demangling(a::b::Type:: + //~| ERROR demangling-alt(a::b::Type) + impl Type {} + + #[rustc_symbol_name] + //~^ ERROR symbol-name(_ZN1a1b15Type$LT$u16$GT$ + //~| ERROR demangling(a::b::Type:: + //~| ERROR demangling-alt(a::b::Type) + impl Type {} + + #[rustc_symbol_name] + //~^ ERROR symbol-name(_ZN1a1b15Type$LT$u32$GT$ + //~| ERROR demangling(a::b::Type:: + //~| ERROR demangling-alt(a::b::Type) + impl Type {} + + #[rustc_symbol_name] + //~^ ERROR symbol-name(_ZN1a1b15Type$LT$u64$GT$ + //~| ERROR demangling(a::b::Type:: + //~| ERROR demangling-alt(a::b::Type) + impl Type {} + + #[rustc_symbol_name] + //~^ ERROR symbol-name(_ZN1a1b15Type$LT$f32$GT$ + //~| ERROR demangling(a::b::Type:: + //~| ERROR demangling-alt(a::b::Type) + impl Type {} + + #[rustc_symbol_name] + //~^ ERROR symbol-name(_ZN1a1b15Type$LT$f64$GT$ + //~| ERROR demangling(a::b::Type:: + //~| ERROR demangling-alt(a::b::Type) + impl Type {} + + #[rustc_symbol_name] + //~^ ERROR symbol-name(_ZN1a1b15Type$LT$str$GT$ + //~| ERROR demangling(a::b::Type:: + //~| ERROR demangling-alt(a::b::Type) + impl Type {} + + #[rustc_symbol_name] + //~^ ERROR symbol-name(_ZN1a1b17Type$LT$$u21$$GT$ + //~| ERROR demangling(a::b::Type:: + //~| ERROR demangling-alt(a::b::Type) + impl Type {} + + #[rustc_symbol_name] + //~^ ERROR symbol-name(_ZN1a1b20Type$LT$$LP$$RP$$GT + //~| ERROR demangling(a::b::Type<()>:: + //~| ERROR demangling-alt(a::b::Type<()>) + impl Type<()> {} + + #[rustc_symbol_name] + //~^ ERROR symbol-name(_ZN1a1b25Type$LT$$LP$u8$C$$RP$$GT$ + //~| ERROR demangling(a::b::Type<(u8,)>:: + //~| ERROR demangling-alt(a::b::Type<(u8,)>) + impl Type<(u8,)> {} + + #[rustc_symbol_name] + //~^ ERROR symbol-name(_ZN1a1b28Type$LT$$LP$u8$C$u16$RP$$GT$ + //~| ERROR demangling(a::b::Type<(u8,u16)>:: + //~| ERROR demangling-alt(a::b::Type<(u8,u16)>) + impl Type<(u8,u16)> {} + + #[rustc_symbol_name] + //~^ ERROR symbol-name(_ZN1a1b34Type$LT$$LP$u8$C$u16$C$u32$RP$$GT$ + //~| ERROR demangling(a::b::Type<(u8,u16,u32)>:: + //~| ERROR demangling-alt(a::b::Type<(u8,u16,u32)>) + impl Type<(u8,u16,u32)> {} + + #[rustc_symbol_name] + //~^ ERROR symbol-name(_ZN1a1b28Type$LT$$BP$const$u20$u8$GT$ + //~| ERROR demangling(a::b::Type<*const u8>:: + //~| ERROR demangling-alt(a::b::Type<*const u8>) + impl Type<*const u8> {} + + #[rustc_symbol_name] + //~^ ERROR symbol-name(_ZN1a1b26Type$LT$$BP$mut$u20$u8$GT$ + //~| ERROR demangling(a::b::Type<*mut u8>:: + //~| ERROR demangling-alt(a::b::Type<*mut u8>) + impl Type<*mut u8> {} + + #[rustc_symbol_name] + //~^ ERROR symbol-name(_ZN1a1b19Type$LT$$RF$str$GT$ + //~| ERROR demangling(a::b::Type<&str>:: + //~| ERROR demangling-alt(a::b::Type<&str>) + impl Type<&str> {} + + #[rustc_symbol_name] + //~^ ERROR symbol-name(_ZN1a1b27Type$LT$$RF$mut$u20$str$GT$ + //~| ERROR demangling(a::b::Type<&mut str>:: + //~| ERROR demangling-alt(a::b::Type<&mut str>) + impl Type<&mut str> {} + + #[rustc_symbol_name] + //~^ ERROR symbol-name(_ZN1a1b35Type$LT$$u5b$u8$u3b$$u20$0$u5d$$GT$ + //~| ERROR demangling(a::b::Type<[u8; 0]>:: + //~| ERROR demangling-alt(a::b::Type<[u8; 0]>) + impl Type<[u8; 0]> {} + + #[rustc_symbol_name] + //~^ ERROR symbol-name(_ZN1a1b22Type$LT$fn$LP$$RP$$GT$ + //~| ERROR demangling(a::b::Type:: + //~| ERROR demangling-alt(a::b::Type) + impl Type {} + + #[rustc_symbol_name] + //~^ ERROR symbol-name(_ZN1a1b60Type$LT$unsafe$u20$extern$u20$$u22$C$u22$$u20$fn$LP$$RP$$GT$ + //~| ERROR demangling(a::b::Type:: + //~| ERROR demangling-alt(a::b::Type) + impl Type {} + + #[rustc_symbol_name] + //~^ ERROR symbol-name(_ZN1a1b34Type$LT$$u5b$T$u3b$$u20$N$u5d$$GT$ + //~| ERROR demangling(a::b::Type<[T; N]>:: + //~| ERROR demangling-alt(a::b::Type<[T; N]>) + impl Type<[T; N]> {} +} + +fn main() {} From 99a77798d3b78f3ce4e92ac6768110682ec8b664 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tomasz=20Mi=C4=85sko?= Date: Fri, 25 Feb 2022 00:00:00 +0000 Subject: [PATCH 3/3] Fix inconsistent symbol mangling of integers constants with -Zverbose The `PrettyPrinter` changes formatting of array size and integer constants based on `-Zverbose`, so its implementation cannot be used in legacy symbol mangling. --- compiler/rustc_symbol_mangling/src/legacy.rs | 38 +- src/test/ui/symbol-names/types.rs | 4 +- .../symbol-names/types.verbose-legacy.stderr | 470 ++++++++++++++++++ 3 files changed, 505 insertions(+), 7 deletions(-) create mode 100644 src/test/ui/symbol-names/types.verbose-legacy.stderr diff --git a/compiler/rustc_symbol_mangling/src/legacy.rs b/compiler/rustc_symbol_mangling/src/legacy.rs index 47bf0fe122156..6e526bf8fc77a 100644 --- a/compiler/rustc_symbol_mangling/src/legacy.rs +++ b/compiler/rustc_symbol_mangling/src/legacy.rs @@ -216,7 +216,7 @@ impl<'tcx> Printer<'tcx> for &mut SymbolPrinter<'tcx> { Ok(self) } - fn print_type(self, ty: Ty<'tcx>) -> Result { + fn print_type(mut self, ty: Ty<'tcx>) -> Result { match *ty.kind() { // Print all nominal types as paths (unlike `pretty_print_type`). ty::FnDef(def_id, substs) @@ -224,6 +224,24 @@ impl<'tcx> Printer<'tcx> for &mut SymbolPrinter<'tcx> { | ty::Projection(ty::ProjectionTy { item_def_id: def_id, substs }) | ty::Closure(def_id, substs) | ty::Generator(def_id, substs, _) => self.print_def_path(def_id, substs), + + // The `pretty_print_type` formatting of array size depends on + // -Zverbose flag, so we cannot reuse it here. + ty::Array(ty, size) => { + self.write_str("[")?; + self = self.print_type(ty)?; + self.write_str("; ")?; + if let Some(size) = size.val().try_to_bits(self.tcx().data_layout.pointer_size) { + write!(self, "{}", size)? + } else if let ty::ConstKind::Param(param) = size.val() { + self = param.print(self)? + } else { + self.write_str("_")? + } + self.write_str("]")?; + Ok(self) + } + _ => self.pretty_print_type(ty), } } @@ -245,12 +263,22 @@ impl<'tcx> Printer<'tcx> for &mut SymbolPrinter<'tcx> { fn print_const(self, ct: ty::Const<'tcx>) -> Result { // only print integers - if let ty::ConstKind::Value(ConstValue::Scalar(Scalar::Int { .. })) = ct.val() { - if ct.ty().is_integral() { - return self.pretty_print_const(ct, true); + match (ct.val(), ct.ty().kind()) { + ( + ty::ConstKind::Value(ConstValue::Scalar(Scalar::Int(scalar))), + ty::Int(_) | ty::Uint(_), + ) => { + // The `pretty_print_const` formatting depends on -Zverbose + // flag, so we cannot reuse it here. + let signed = matches!(ct.ty().kind(), ty::Int(_)); + write!( + self, + "{:#?}", + ty::ConstInt::new(scalar, signed, ct.ty().is_ptr_sized_integral()) + )?; } + _ => self.write_str("_")?, } - self.write_str("_")?; Ok(self) } diff --git a/src/test/ui/symbol-names/types.rs b/src/test/ui/symbol-names/types.rs index e323625d66e76..0ae699c93c2de 100644 --- a/src/test/ui/symbol-names/types.rs +++ b/src/test/ui/symbol-names/types.rs @@ -1,7 +1,7 @@ // build-fail -// revisions: legacy +// revisions: legacy verbose-legacy // compile-flags: --crate-name=a -C symbol-mangling-version=legacy -Z unstable-options -// +//[verbose-legacy]compile-flags: -Zverbose // normalize-stderr-test: "h[[:xdigit:]]{16}" -> "h[HASH]" #![feature(never_type)] diff --git a/src/test/ui/symbol-names/types.verbose-legacy.stderr b/src/test/ui/symbol-names/types.verbose-legacy.stderr new file mode 100644 index 0000000000000..a4984d5629f7d --- /dev/null +++ b/src/test/ui/symbol-names/types.verbose-legacy.stderr @@ -0,0 +1,470 @@ +error: symbol-name(_ZN1a1b16Type$LT$bool$GT$17h[HASH]E) + --> $DIR/types.rs:13:5 + | +LL | #[rustc_symbol_name] + | ^^^^^^^^^^^^^^^^^^^^ + +error: demangling(a::b::Type::h[HASH]) + --> $DIR/types.rs:13:5 + | +LL | #[rustc_symbol_name] + | ^^^^^^^^^^^^^^^^^^^^ + +error: demangling-alt(a::b::Type) + --> $DIR/types.rs:13:5 + | +LL | #[rustc_symbol_name] + | ^^^^^^^^^^^^^^^^^^^^ + +error: symbol-name(_ZN1a1b16Type$LT$char$GT$17h[HASH]E) + --> $DIR/types.rs:19:5 + | +LL | #[rustc_symbol_name] + | ^^^^^^^^^^^^^^^^^^^^ + +error: demangling(a::b::Type::h[HASH]) + --> $DIR/types.rs:19:5 + | +LL | #[rustc_symbol_name] + | ^^^^^^^^^^^^^^^^^^^^ + +error: demangling-alt(a::b::Type) + --> $DIR/types.rs:19:5 + | +LL | #[rustc_symbol_name] + | ^^^^^^^^^^^^^^^^^^^^ + +error: symbol-name(_ZN1a1b14Type$LT$i8$GT$17h[HASH]E) + --> $DIR/types.rs:25:5 + | +LL | #[rustc_symbol_name] + | ^^^^^^^^^^^^^^^^^^^^ + +error: demangling(a::b::Type::h[HASH]) + --> $DIR/types.rs:25:5 + | +LL | #[rustc_symbol_name] + | ^^^^^^^^^^^^^^^^^^^^ + +error: demangling-alt(a::b::Type) + --> $DIR/types.rs:25:5 + | +LL | #[rustc_symbol_name] + | ^^^^^^^^^^^^^^^^^^^^ + +error: symbol-name(_ZN1a1b15Type$LT$i16$GT$17h[HASH]E) + --> $DIR/types.rs:31:5 + | +LL | #[rustc_symbol_name] + | ^^^^^^^^^^^^^^^^^^^^ + +error: demangling(a::b::Type::h[HASH]) + --> $DIR/types.rs:31:5 + | +LL | #[rustc_symbol_name] + | ^^^^^^^^^^^^^^^^^^^^ + +error: demangling-alt(a::b::Type) + --> $DIR/types.rs:31:5 + | +LL | #[rustc_symbol_name] + | ^^^^^^^^^^^^^^^^^^^^ + +error: symbol-name(_ZN1a1b15Type$LT$i32$GT$17h[HASH]E) + --> $DIR/types.rs:37:5 + | +LL | #[rustc_symbol_name] + | ^^^^^^^^^^^^^^^^^^^^ + +error: demangling(a::b::Type::h[HASH]) + --> $DIR/types.rs:37:5 + | +LL | #[rustc_symbol_name] + | ^^^^^^^^^^^^^^^^^^^^ + +error: demangling-alt(a::b::Type) + --> $DIR/types.rs:37:5 + | +LL | #[rustc_symbol_name] + | ^^^^^^^^^^^^^^^^^^^^ + +error: symbol-name(_ZN1a1b15Type$LT$i64$GT$17h[HASH]E) + --> $DIR/types.rs:43:5 + | +LL | #[rustc_symbol_name] + | ^^^^^^^^^^^^^^^^^^^^ + +error: demangling(a::b::Type::h[HASH]) + --> $DIR/types.rs:43:5 + | +LL | #[rustc_symbol_name] + | ^^^^^^^^^^^^^^^^^^^^ + +error: demangling-alt(a::b::Type) + --> $DIR/types.rs:43:5 + | +LL | #[rustc_symbol_name] + | ^^^^^^^^^^^^^^^^^^^^ + +error: symbol-name(_ZN1a1b14Type$LT$u8$GT$17h[HASH]E) + --> $DIR/types.rs:49:5 + | +LL | #[rustc_symbol_name] + | ^^^^^^^^^^^^^^^^^^^^ + +error: demangling(a::b::Type::h[HASH]) + --> $DIR/types.rs:49:5 + | +LL | #[rustc_symbol_name] + | ^^^^^^^^^^^^^^^^^^^^ + +error: demangling-alt(a::b::Type) + --> $DIR/types.rs:49:5 + | +LL | #[rustc_symbol_name] + | ^^^^^^^^^^^^^^^^^^^^ + +error: symbol-name(_ZN1a1b15Type$LT$u16$GT$17h[HASH]E) + --> $DIR/types.rs:55:5 + | +LL | #[rustc_symbol_name] + | ^^^^^^^^^^^^^^^^^^^^ + +error: demangling(a::b::Type::h[HASH]) + --> $DIR/types.rs:55:5 + | +LL | #[rustc_symbol_name] + | ^^^^^^^^^^^^^^^^^^^^ + +error: demangling-alt(a::b::Type) + --> $DIR/types.rs:55:5 + | +LL | #[rustc_symbol_name] + | ^^^^^^^^^^^^^^^^^^^^ + +error: symbol-name(_ZN1a1b15Type$LT$u32$GT$17h[HASH]E) + --> $DIR/types.rs:61:5 + | +LL | #[rustc_symbol_name] + | ^^^^^^^^^^^^^^^^^^^^ + +error: demangling(a::b::Type::h[HASH]) + --> $DIR/types.rs:61:5 + | +LL | #[rustc_symbol_name] + | ^^^^^^^^^^^^^^^^^^^^ + +error: demangling-alt(a::b::Type) + --> $DIR/types.rs:61:5 + | +LL | #[rustc_symbol_name] + | ^^^^^^^^^^^^^^^^^^^^ + +error: symbol-name(_ZN1a1b15Type$LT$u64$GT$17h[HASH]E) + --> $DIR/types.rs:67:5 + | +LL | #[rustc_symbol_name] + | ^^^^^^^^^^^^^^^^^^^^ + +error: demangling(a::b::Type::h[HASH]) + --> $DIR/types.rs:67:5 + | +LL | #[rustc_symbol_name] + | ^^^^^^^^^^^^^^^^^^^^ + +error: demangling-alt(a::b::Type) + --> $DIR/types.rs:67:5 + | +LL | #[rustc_symbol_name] + | ^^^^^^^^^^^^^^^^^^^^ + +error: symbol-name(_ZN1a1b15Type$LT$f32$GT$17h[HASH]E) + --> $DIR/types.rs:73:5 + | +LL | #[rustc_symbol_name] + | ^^^^^^^^^^^^^^^^^^^^ + +error: demangling(a::b::Type::h[HASH]) + --> $DIR/types.rs:73:5 + | +LL | #[rustc_symbol_name] + | ^^^^^^^^^^^^^^^^^^^^ + +error: demangling-alt(a::b::Type) + --> $DIR/types.rs:73:5 + | +LL | #[rustc_symbol_name] + | ^^^^^^^^^^^^^^^^^^^^ + +error: symbol-name(_ZN1a1b15Type$LT$f64$GT$17h[HASH]E) + --> $DIR/types.rs:79:5 + | +LL | #[rustc_symbol_name] + | ^^^^^^^^^^^^^^^^^^^^ + +error: demangling(a::b::Type::h[HASH]) + --> $DIR/types.rs:79:5 + | +LL | #[rustc_symbol_name] + | ^^^^^^^^^^^^^^^^^^^^ + +error: demangling-alt(a::b::Type) + --> $DIR/types.rs:79:5 + | +LL | #[rustc_symbol_name] + | ^^^^^^^^^^^^^^^^^^^^ + +error: symbol-name(_ZN1a1b15Type$LT$str$GT$17h[HASH]E) + --> $DIR/types.rs:85:5 + | +LL | #[rustc_symbol_name] + | ^^^^^^^^^^^^^^^^^^^^ + +error: demangling(a::b::Type::h[HASH]) + --> $DIR/types.rs:85:5 + | +LL | #[rustc_symbol_name] + | ^^^^^^^^^^^^^^^^^^^^ + +error: demangling-alt(a::b::Type) + --> $DIR/types.rs:85:5 + | +LL | #[rustc_symbol_name] + | ^^^^^^^^^^^^^^^^^^^^ + +error: symbol-name(_ZN1a1b17Type$LT$$u21$$GT$17h[HASH]E) + --> $DIR/types.rs:91:5 + | +LL | #[rustc_symbol_name] + | ^^^^^^^^^^^^^^^^^^^^ + +error: demangling(a::b::Type::h[HASH]) + --> $DIR/types.rs:91:5 + | +LL | #[rustc_symbol_name] + | ^^^^^^^^^^^^^^^^^^^^ + +error: demangling-alt(a::b::Type) + --> $DIR/types.rs:91:5 + | +LL | #[rustc_symbol_name] + | ^^^^^^^^^^^^^^^^^^^^ + +error: symbol-name(_ZN1a1b20Type$LT$$LP$$RP$$GT$17h[HASH]E) + --> $DIR/types.rs:97:5 + | +LL | #[rustc_symbol_name] + | ^^^^^^^^^^^^^^^^^^^^ + +error: demangling(a::b::Type<()>::h[HASH]) + --> $DIR/types.rs:97:5 + | +LL | #[rustc_symbol_name] + | ^^^^^^^^^^^^^^^^^^^^ + +error: demangling-alt(a::b::Type<()>) + --> $DIR/types.rs:97:5 + | +LL | #[rustc_symbol_name] + | ^^^^^^^^^^^^^^^^^^^^ + +error: symbol-name(_ZN1a1b25Type$LT$$LP$u8$C$$RP$$GT$17h[HASH]E) + --> $DIR/types.rs:103:5 + | +LL | #[rustc_symbol_name] + | ^^^^^^^^^^^^^^^^^^^^ + +error: demangling(a::b::Type<(u8,)>::h[HASH]) + --> $DIR/types.rs:103:5 + | +LL | #[rustc_symbol_name] + | ^^^^^^^^^^^^^^^^^^^^ + +error: demangling-alt(a::b::Type<(u8,)>) + --> $DIR/types.rs:103:5 + | +LL | #[rustc_symbol_name] + | ^^^^^^^^^^^^^^^^^^^^ + +error: symbol-name(_ZN1a1b28Type$LT$$LP$u8$C$u16$RP$$GT$17h[HASH]E) + --> $DIR/types.rs:109:5 + | +LL | #[rustc_symbol_name] + | ^^^^^^^^^^^^^^^^^^^^ + +error: demangling(a::b::Type<(u8,u16)>::h[HASH]) + --> $DIR/types.rs:109:5 + | +LL | #[rustc_symbol_name] + | ^^^^^^^^^^^^^^^^^^^^ + +error: demangling-alt(a::b::Type<(u8,u16)>) + --> $DIR/types.rs:109:5 + | +LL | #[rustc_symbol_name] + | ^^^^^^^^^^^^^^^^^^^^ + +error: symbol-name(_ZN1a1b34Type$LT$$LP$u8$C$u16$C$u32$RP$$GT$17h[HASH]E) + --> $DIR/types.rs:115:5 + | +LL | #[rustc_symbol_name] + | ^^^^^^^^^^^^^^^^^^^^ + +error: demangling(a::b::Type<(u8,u16,u32)>::h[HASH]) + --> $DIR/types.rs:115:5 + | +LL | #[rustc_symbol_name] + | ^^^^^^^^^^^^^^^^^^^^ + +error: demangling-alt(a::b::Type<(u8,u16,u32)>) + --> $DIR/types.rs:115:5 + | +LL | #[rustc_symbol_name] + | ^^^^^^^^^^^^^^^^^^^^ + +error: symbol-name(_ZN1a1b28Type$LT$$BP$const$u20$u8$GT$17h[HASH]E) + --> $DIR/types.rs:121:5 + | +LL | #[rustc_symbol_name] + | ^^^^^^^^^^^^^^^^^^^^ + +error: demangling(a::b::Type<*const u8>::h[HASH]) + --> $DIR/types.rs:121:5 + | +LL | #[rustc_symbol_name] + | ^^^^^^^^^^^^^^^^^^^^ + +error: demangling-alt(a::b::Type<*const u8>) + --> $DIR/types.rs:121:5 + | +LL | #[rustc_symbol_name] + | ^^^^^^^^^^^^^^^^^^^^ + +error: symbol-name(_ZN1a1b26Type$LT$$BP$mut$u20$u8$GT$17h[HASH]E) + --> $DIR/types.rs:127:5 + | +LL | #[rustc_symbol_name] + | ^^^^^^^^^^^^^^^^^^^^ + +error: demangling(a::b::Type<*mut u8>::h[HASH]) + --> $DIR/types.rs:127:5 + | +LL | #[rustc_symbol_name] + | ^^^^^^^^^^^^^^^^^^^^ + +error: demangling-alt(a::b::Type<*mut u8>) + --> $DIR/types.rs:127:5 + | +LL | #[rustc_symbol_name] + | ^^^^^^^^^^^^^^^^^^^^ + +error: symbol-name(_ZN1a1b19Type$LT$$RF$str$GT$17h[HASH]E) + --> $DIR/types.rs:133:5 + | +LL | #[rustc_symbol_name] + | ^^^^^^^^^^^^^^^^^^^^ + +error: demangling(a::b::Type<&str>::h[HASH]) + --> $DIR/types.rs:133:5 + | +LL | #[rustc_symbol_name] + | ^^^^^^^^^^^^^^^^^^^^ + +error: demangling-alt(a::b::Type<&str>) + --> $DIR/types.rs:133:5 + | +LL | #[rustc_symbol_name] + | ^^^^^^^^^^^^^^^^^^^^ + +error: symbol-name(_ZN1a1b27Type$LT$$RF$mut$u20$str$GT$17h[HASH]E) + --> $DIR/types.rs:139:5 + | +LL | #[rustc_symbol_name] + | ^^^^^^^^^^^^^^^^^^^^ + +error: demangling(a::b::Type<&mut str>::h[HASH]) + --> $DIR/types.rs:139:5 + | +LL | #[rustc_symbol_name] + | ^^^^^^^^^^^^^^^^^^^^ + +error: demangling-alt(a::b::Type<&mut str>) + --> $DIR/types.rs:139:5 + | +LL | #[rustc_symbol_name] + | ^^^^^^^^^^^^^^^^^^^^ + +error: symbol-name(_ZN1a1b35Type$LT$$u5b$u8$u3b$$u20$0$u5d$$GT$17h[HASH]E) + --> $DIR/types.rs:145:5 + | +LL | #[rustc_symbol_name] + | ^^^^^^^^^^^^^^^^^^^^ + +error: demangling(a::b::Type<[u8; 0]>::h[HASH]) + --> $DIR/types.rs:145:5 + | +LL | #[rustc_symbol_name] + | ^^^^^^^^^^^^^^^^^^^^ + +error: demangling-alt(a::b::Type<[u8; 0]>) + --> $DIR/types.rs:145:5 + | +LL | #[rustc_symbol_name] + | ^^^^^^^^^^^^^^^^^^^^ + +error: symbol-name(_ZN1a1b22Type$LT$fn$LP$$RP$$GT$17h[HASH]E) + --> $DIR/types.rs:151:5 + | +LL | #[rustc_symbol_name] + | ^^^^^^^^^^^^^^^^^^^^ + +error: demangling(a::b::Type::h[HASH]) + --> $DIR/types.rs:151:5 + | +LL | #[rustc_symbol_name] + | ^^^^^^^^^^^^^^^^^^^^ + +error: demangling-alt(a::b::Type) + --> $DIR/types.rs:151:5 + | +LL | #[rustc_symbol_name] + | ^^^^^^^^^^^^^^^^^^^^ + +error: symbol-name(_ZN1a1b60Type$LT$unsafe$u20$extern$u20$$u22$C$u22$$u20$fn$LP$$RP$$GT$17h[HASH]E) + --> $DIR/types.rs:157:5 + | +LL | #[rustc_symbol_name] + | ^^^^^^^^^^^^^^^^^^^^ + +error: demangling(a::b::Type::h[HASH]) + --> $DIR/types.rs:157:5 + | +LL | #[rustc_symbol_name] + | ^^^^^^^^^^^^^^^^^^^^ + +error: demangling-alt(a::b::Type) + --> $DIR/types.rs:157:5 + | +LL | #[rustc_symbol_name] + | ^^^^^^^^^^^^^^^^^^^^ + +error: symbol-name(_ZN1a1b34Type$LT$$u5b$T$u3b$$u20$N$u5d$$GT$17h[HASH]E) + --> $DIR/types.rs:163:5 + | +LL | #[rustc_symbol_name] + | ^^^^^^^^^^^^^^^^^^^^ + +error: demangling(a::b::Type<[T; N]>::h[HASH]) + --> $DIR/types.rs:163:5 + | +LL | #[rustc_symbol_name] + | ^^^^^^^^^^^^^^^^^^^^ + +error: demangling-alt(a::b::Type<[T; N]>) + --> $DIR/types.rs:163:5 + | +LL | #[rustc_symbol_name] + | ^^^^^^^^^^^^^^^^^^^^ + +error: aborting due to 78 previous errors +