Skip to content

Commit bdfd941

Browse files
committedMay 14, 2024·
Auto merge of rust-lang#123816 - tgross35:f16-f128-mangling, r=michaelwoerister
Add v0 symbol mangling for `f16` and `f128` As discussed at <rust-lang#122106>, use the crate encoding to represent new primitives.
2 parents 31026b7 + 792a9bd commit bdfd941

File tree

6 files changed

+924
-244
lines changed

6 files changed

+924
-244
lines changed
 

‎compiler/rustc_symbol_mangling/src/v0.rs

+2-3
Original file line numberDiff line numberDiff line change
@@ -319,11 +319,10 @@ impl<'tcx> Printer<'tcx> for SymbolMangler<'tcx> {
319319
ty::Uint(UintTy::U64) => "y",
320320
ty::Uint(UintTy::U128) => "o",
321321
ty::Uint(UintTy::Usize) => "j",
322-
// FIXME(f16_f128): update these once `rustc-demangle` supports the new types
323-
ty::Float(FloatTy::F16) => unimplemented!("f16_f128"),
322+
ty::Float(FloatTy::F16) => "C3f16",
324323
ty::Float(FloatTy::F32) => "f",
325324
ty::Float(FloatTy::F64) => "d",
326-
ty::Float(FloatTy::F128) => unimplemented!("f16_f128"),
325+
ty::Float(FloatTy::F128) => "C4f128",
327326
ty::Never => "z",
328327

329328
// Placeholders (should be demangled as `_`).

‎src/doc/rustc/src/symbol-mangling/v0.md

+2
Original file line numberDiff line numberDiff line change
@@ -739,6 +739,8 @@ The type encodings based on the initial tag character are:
739739
* `z` — `!`
740740
* `p` — [placeholder] `_`
741741
742+
Remaining primitives are encoded as a crate production, e.g. `C4f128`.
743+
742744
* `A` — An [array][reference-array] `[T; N]`.
743745
744746
> <span id="array-type">array-type</span> → `A` *[type]* *[const]*

‎tests/ui/symbol-names/types.legacy.stderr

+115-79
Large diffs are not rendered by default.

‎tests/ui/symbol-names/types.rs

+184-83
Original file line numberDiff line numberDiff line change
@@ -1,169 +1,270 @@
11
//@ build-fail
2-
//@ revisions: legacy verbose-legacy
3-
//@ compile-flags: --crate-name=a -C symbol-mangling-version=legacy -Z unstable-options
4-
//@[verbose-legacy]compile-flags: -Zverbose-internals
2+
//@ revisions: legacy verbose-legacy v0
3+
//@ compile-flags: --crate-name=a -Z unstable-options
4+
//@ [legacy] compile-flags: -Csymbol-mangling-version=legacy
5+
//@ [verbose-legacy] compile-flags: -Csymbol-mangling-version=legacy -Zverbose-internals
6+
//@ [v0] compile-flags: -Csymbol-mangling-version=v0
57
//@ normalize-stderr-test: "h[[:xdigit:]]{16}" -> "h[HASH]"
8+
//@ [v0] normalize-stderr-test: "\[[[:xdigit:]]{16}\]" -> "[HASH]"
69

710
#![feature(never_type)]
811
#![feature(rustc_attrs)]
12+
#![feature(f128)]
13+
#![feature(f16)]
914

1015
pub fn b() {
1116
struct Type<T: ?Sized>(T);
1217

1318
#[rustc_symbol_name]
14-
//~^ ERROR symbol-name(_ZN1a1b16Type$LT$bool$GT$
15-
//~| ERROR demangling(a::b::Type<bool>::
16-
//~| ERROR demangling-alt(a::b::Type<bool>)
19+
//[legacy,verbose-legacy]~^ ERROR symbol-name(_ZN1a1b16Type$LT$bool$GT$
20+
//[legacy,verbose-legacy]~| ERROR demangling(a::b::Type<bool>::
21+
//[legacy,verbose-legacy]~| ERROR demangling-alt(a::b::Type<bool>)
22+
//[v0]~^^^^ ERROR symbol-name(_RMNvCsCRATE_HASH_1a1bINtB<REF>_4TypebE)
23+
//[v0]~| ERROR ::b::Type<bool>>)
24+
//[v0]~| ERROR demangling-alt(<a::b::Type<bool>>)
1725
impl Type<bool> {}
1826

1927
#[rustc_symbol_name]
20-
//~^ ERROR symbol-name(_ZN1a1b16Type$LT$char$GT$
21-
//~| ERROR demangling(a::b::Type<char>::
22-
//~| ERROR demangling-alt(a::b::Type<char>)
28+
//[legacy,verbose-legacy]~^ ERROR symbol-name(_ZN1a1b16Type$LT$char$GT$
29+
//[legacy,verbose-legacy]~| ERROR demangling(a::b::Type<char>::
30+
//[legacy,verbose-legacy]~| ERROR demangling-alt(a::b::Type<char>)
31+
//[v0]~^^^^ ERROR symbol-name(_RMs_NvCsCRATE_HASH_1a1bINtB<REF>_4TypecE)
32+
//[v0]~| ERROR ::b::Type<char>>)
33+
//[v0]~| ERROR demangling-alt(<a::b::Type<char>>)
2334
impl Type<char> {}
2435

2536
#[rustc_symbol_name]
26-
//~^ ERROR symbol-name(_ZN1a1b14Type$LT$i8$GT$
27-
//~| ERROR demangling(a::b::Type<i8>::
28-
//~| ERROR demangling-alt(a::b::Type<i8>)
37+
//[legacy,verbose-legacy]~^ ERROR symbol-name(_ZN1a1b14Type$LT$i8$GT$
38+
//[legacy,verbose-legacy]~| ERROR demangling(a::b::Type<i8>::
39+
//[legacy,verbose-legacy]~| ERROR demangling-alt(a::b::Type<i8>)
40+
//[v0]~^^^^ ERROR symbol-name(_RMs0_NvCsCRATE_HASH_1a1bINtB<REF>_4TypeaE)
41+
//[v0]~| ERROR ::b::Type<i8>>)
42+
//[v0]~| ERROR demangling-alt(<a::b::Type<i8>>)
2943
impl Type<i8> {}
3044

3145
#[rustc_symbol_name]
32-
//~^ ERROR symbol-name(_ZN1a1b15Type$LT$i16$GT$
33-
//~| ERROR demangling(a::b::Type<i16>::
34-
//~| ERROR demangling-alt(a::b::Type<i16>)
46+
//[legacy,verbose-legacy]~^ ERROR symbol-name(_ZN1a1b15Type$LT$i16$GT$
47+
//[legacy,verbose-legacy]~| ERROR demangling(a::b::Type<i16>::
48+
//[legacy,verbose-legacy]~| ERROR demangling-alt(a::b::Type<i16>)
49+
//[v0]~^^^^ ERROR symbol-name(_RMs1_NvCsCRATE_HASH_1a1bINtB<REF>_4TypesE)
50+
//[v0]~| ERROR ::b::Type<i16>>)
51+
//[v0]~| ERROR demangling-alt(<a::b::Type<i16>>)
3552
impl Type<i16> {}
3653

3754
#[rustc_symbol_name]
38-
//~^ ERROR symbol-name(_ZN1a1b15Type$LT$i32$GT$
39-
//~| ERROR demangling(a::b::Type<i32>::
40-
//~| ERROR demangling-alt(a::b::Type<i32>)
55+
//[legacy,verbose-legacy]~^ ERROR symbol-name(_ZN1a1b15Type$LT$i32$GT$
56+
//[legacy,verbose-legacy]~| ERROR demangling(a::b::Type<i32>::
57+
//[legacy,verbose-legacy]~| ERROR demangling-alt(a::b::Type<i32>)
58+
//[v0]~^^^^ ERROR symbol-name(_RMs2_NvCsCRATE_HASH_1a1bINtB<REF>_4TypelE)
59+
//[v0]~| ERROR ::b::Type<i32>>)
60+
//[v0]~| ERROR demangling-alt(<a::b::Type<i32>>)
4161
impl Type<i32> {}
4262

4363
#[rustc_symbol_name]
44-
//~^ ERROR symbol-name(_ZN1a1b15Type$LT$i64$GT$
45-
//~| ERROR demangling(a::b::Type<i64>::
46-
//~| ERROR demangling-alt(a::b::Type<i64>)
64+
//[legacy,verbose-legacy]~^ ERROR symbol-name(_ZN1a1b15Type$LT$i64$GT$
65+
//[legacy,verbose-legacy]~| ERROR demangling(a::b::Type<i64>::
66+
//[legacy,verbose-legacy]~| ERROR demangling-alt(a::b::Type<i64>)
67+
//[v0]~^^^^ ERROR symbol-name(_RMs3_NvCsCRATE_HASH_1a1bINtB<REF>_4TypexE)
68+
//[v0]~| ERROR ::b::Type<i64>>)
69+
//[v0]~| ERROR demangling-alt(<a::b::Type<i64>>)
4770
impl Type<i64> {}
4871

4972
#[rustc_symbol_name]
50-
//~^ ERROR symbol-name(_ZN1a1b14Type$LT$u8$GT$
51-
//~| ERROR demangling(a::b::Type<u8>::
52-
//~| ERROR demangling-alt(a::b::Type<u8>)
73+
//[legacy,verbose-legacy]~^ ERROR symbol-name(_ZN1a1b14Type$LT$u8$GT$
74+
//[legacy,verbose-legacy]~| ERROR demangling(a::b::Type<u8>::
75+
//[legacy,verbose-legacy]~| ERROR demangling-alt(a::b::Type<u8>)
76+
//[v0]~^^^^ ERROR symbol-name(_RMs4_NvCsCRATE_HASH_1a1bINtB<REF>_4TypehE)
77+
//[v0]~| ERROR ::b::Type<u8>>)
78+
//[v0]~| ERROR demangling-alt(<a::b::Type<u8>>)
5379
impl Type<u8> {}
5480

5581
#[rustc_symbol_name]
56-
//~^ ERROR symbol-name(_ZN1a1b15Type$LT$u16$GT$
57-
//~| ERROR demangling(a::b::Type<u16>::
58-
//~| ERROR demangling-alt(a::b::Type<u16>)
82+
//[legacy,verbose-legacy]~^ ERROR symbol-name(_ZN1a1b15Type$LT$u16$GT$
83+
//[legacy,verbose-legacy]~| ERROR demangling(a::b::Type<u16>::
84+
//[legacy,verbose-legacy]~| ERROR demangling-alt(a::b::Type<u16>)
85+
//[v0]~^^^^ ERROR symbol-name(_RMs5_NvCsCRATE_HASH_1a1bINtB<REF>_4TypetE)
86+
//[v0]~| ERROR ::b::Type<u16>>)
87+
//[v0]~| ERROR demangling-alt(<a::b::Type<u16>>)
5988
impl Type<u16> {}
6089

6190
#[rustc_symbol_name]
62-
//~^ ERROR symbol-name(_ZN1a1b15Type$LT$u32$GT$
63-
//~| ERROR demangling(a::b::Type<u32>::
64-
//~| ERROR demangling-alt(a::b::Type<u32>)
91+
//[legacy,verbose-legacy]~^ ERROR symbol-name(_ZN1a1b15Type$LT$u32$GT$
92+
//[legacy,verbose-legacy]~| ERROR demangling(a::b::Type<u32>::
93+
//[legacy,verbose-legacy]~| ERROR demangling-alt(a::b::Type<u32>)
94+
//[v0]~^^^^ ERROR symbol-name(_RMs6_NvCsCRATE_HASH_1a1bINtB<REF>_4TypemE)
95+
//[v0]~| ERROR ::b::Type<u32>>)
96+
//[v0]~| ERROR demangling-alt(<a::b::Type<u32>>)
6597
impl Type<u32> {}
6698

6799
#[rustc_symbol_name]
68-
//~^ ERROR symbol-name(_ZN1a1b15Type$LT$u64$GT$
69-
//~| ERROR demangling(a::b::Type<u64>::
70-
//~| ERROR demangling-alt(a::b::Type<u64>)
100+
//[legacy,verbose-legacy]~^ ERROR symbol-name(_ZN1a1b15Type$LT$u64$GT$
101+
//[legacy,verbose-legacy]~| ERROR demangling(a::b::Type<u64>::
102+
//[legacy,verbose-legacy]~| ERROR demangling-alt(a::b::Type<u64>)
103+
//[v0]~^^^^ ERROR symbol-name(_RMs7_NvCsCRATE_HASH_1a1bINtB<REF>_4TypeyE)
104+
//[v0]~| ERROR ::b::Type<u64>>)
105+
//[v0]~| ERROR demangling-alt(<a::b::Type<u64>>)
71106
impl Type<u64> {}
72107

73108
#[rustc_symbol_name]
74-
//~^ ERROR symbol-name(_ZN1a1b15Type$LT$f32$GT$
75-
//~| ERROR demangling(a::b::Type<f32>::
76-
//~| ERROR demangling-alt(a::b::Type<f32>)
109+
//[legacy,verbose-legacy]~^ ERROR symbol-name(_ZN1a1b15Type$LT$f16$GT$
110+
//[legacy,verbose-legacy]~| ERROR demangling(a::b::Type<f16>::
111+
//[legacy,verbose-legacy]~| ERROR demangling-alt(a::b::Type<f16>)
112+
//[v0]~^^^^ ERROR symbol-name(_RMs8_NvCsCRATE_HASH_1a1bINtB<REF>_4TypeC3f16E)
113+
//[v0]~| ERROR ::b::Type<f16>>)
114+
//[v0]~| ERROR demangling-alt(<a::b::Type<f16>>)
115+
impl Type<f16> {}
116+
117+
#[rustc_symbol_name]
118+
//[legacy,verbose-legacy]~^ ERROR symbol-name(_ZN1a1b15Type$LT$f32$GT$
119+
//[legacy,verbose-legacy]~| ERROR demangling(a::b::Type<f32>::
120+
//[legacy,verbose-legacy]~| ERROR demangling-alt(a::b::Type<f32>)
121+
//[v0]~^^^^ ERROR symbol-name(_RMs9_NvCsCRATE_HASH_1a1bINtB<REF>_4TypefE)
122+
//[v0]~| ERROR ::b::Type<f32>>)
123+
//[v0]~| ERROR demangling-alt(<a::b::Type<f32>>)
77124
impl Type<f32> {}
78125

79126
#[rustc_symbol_name]
80-
//~^ ERROR symbol-name(_ZN1a1b15Type$LT$f64$GT$
81-
//~| ERROR demangling(a::b::Type<f64>::
82-
//~| ERROR demangling-alt(a::b::Type<f64>)
127+
//[legacy,verbose-legacy]~^ ERROR symbol-name(_ZN1a1b15Type$LT$f64$GT$
128+
//[legacy,verbose-legacy]~| ERROR demangling(a::b::Type<f64>::
129+
//[legacy,verbose-legacy]~| ERROR demangling-alt(a::b::Type<f64>)
130+
//[v0]~^^^^ ERROR symbol-name(_RMsa_NvCsCRATE_HASH_1a1bINtB<REF>_4TypedE)
131+
//[v0]~| ERROR ::b::Type<f64>>)
132+
//[v0]~| ERROR demangling-alt(<a::b::Type<f64>>)
83133
impl Type<f64> {}
84134

85135
#[rustc_symbol_name]
86-
//~^ ERROR symbol-name(_ZN1a1b15Type$LT$str$GT$
87-
//~| ERROR demangling(a::b::Type<str>::
88-
//~| ERROR demangling-alt(a::b::Type<str>)
136+
//[legacy,verbose-legacy]~^ ERROR symbol-name(_ZN1a1b16Type$LT$f128$GT$
137+
//[legacy,verbose-legacy]~| ERROR demangling(a::b::Type<f128>::
138+
//[legacy,verbose-legacy]~| ERROR demangling-alt(a::b::Type<f128>)
139+
//[v0]~^^^^ ERROR symbol-name(_RMsb_NvCsCRATE_HASH_1a1bINtB<REF>_4TypeC4f128E)
140+
//[v0]~| ERROR ::b::Type<f128>>)
141+
//[v0]~| ERROR demangling-alt(<a::b::Type<f128>>)
142+
impl Type<f128> {}
143+
144+
#[rustc_symbol_name]
145+
//[legacy,verbose-legacy]~^ ERROR symbol-name(_ZN1a1b15Type$LT$str$GT$
146+
//[legacy,verbose-legacy]~| ERROR demangling(a::b::Type<str>::
147+
//[legacy,verbose-legacy]~| ERROR demangling-alt(a::b::Type<str>)
148+
//[v0]~^^^^ ERROR symbol-name(_RMsc_NvCsCRATE_HASH_1a1bINtB<REF>_4TypeeE)
149+
//[v0]~| ERROR ::b::Type<str>>)
150+
//[v0]~| ERROR demangling-alt(<a::b::Type<str>>)
89151
impl Type<str> {}
90152

91153
#[rustc_symbol_name]
92-
//~^ ERROR symbol-name(_ZN1a1b17Type$LT$$u21$$GT$
93-
//~| ERROR demangling(a::b::Type<!>::
94-
//~| ERROR demangling-alt(a::b::Type<!>)
154+
//[legacy,verbose-legacy]~^ ERROR symbol-name(_ZN1a1b17Type$LT$$u21$$GT$
155+
//[legacy,verbose-legacy]~| ERROR demangling(a::b::Type<!>::
156+
//[legacy,verbose-legacy]~| ERROR demangling-alt(a::b::Type<!>)
157+
//[v0]~^^^^ ERROR symbol-name(_RMsd_NvCsCRATE_HASH_1a1bINtB<REF>_4TypezE)
158+
//[v0]~| ERROR ::b::Type<!>>)
159+
//[v0]~| ERROR demangling-alt(<a::b::Type<!>>)
95160
impl Type<!> {}
96161

97162
#[rustc_symbol_name]
98-
//~^ ERROR symbol-name(_ZN1a1b20Type$LT$$LP$$RP$$GT
99-
//~| ERROR demangling(a::b::Type<()>::
100-
//~| ERROR demangling-alt(a::b::Type<()>)
163+
//[legacy,verbose-legacy]~^ ERROR symbol-name(_ZN1a1b20Type$LT$$LP$$RP$$GT$
164+
//[legacy,verbose-legacy]~| ERROR demangling(a::b::Type<()>::
165+
//[legacy,verbose-legacy]~| ERROR demangling-alt(a::b::Type<()>)
166+
//[v0]~^^^^ ERROR symbol-name(_RMse_NvCsCRATE_HASH_1a1bINtB<REF>_4TypeuE)
167+
//[v0]~| ERROR ::b::Type<()>>)
168+
//[v0]~| ERROR demangling-alt(<a::b::Type<()>>)
101169
impl Type<()> {}
102170

103171
#[rustc_symbol_name]
104-
//~^ ERROR symbol-name(_ZN1a1b25Type$LT$$LP$u8$C$$RP$$GT$
105-
//~| ERROR demangling(a::b::Type<(u8,)>::
106-
//~| ERROR demangling-alt(a::b::Type<(u8,)>)
172+
//[legacy,verbose-legacy]~^ ERROR symbol-name(_ZN1a1b25Type$LT$$LP$u8$C$$RP$$GT$
173+
//[legacy,verbose-legacy]~| ERROR demangling(a::b::Type<(u8,)>::
174+
//[legacy,verbose-legacy]~| ERROR demangling-alt(a::b::Type<(u8,)>)
175+
//[v0]~^^^^ ERROR symbol-name(_RMsf_NvCsCRATE_HASH_1a1bINtB<REF>_4TypeThEE)
176+
//[v0]~| ERROR ::b::Type<(u8,)>>)
177+
//[v0]~| ERROR demangling-alt(<a::b::Type<(u8,)>>)
107178
impl Type<(u8,)> {}
108179

109180
#[rustc_symbol_name]
110-
//~^ ERROR symbol-name(_ZN1a1b28Type$LT$$LP$u8$C$u16$RP$$GT$
111-
//~| ERROR demangling(a::b::Type<(u8,u16)>::
112-
//~| ERROR demangling-alt(a::b::Type<(u8,u16)>)
113-
impl Type<(u8,u16)> {}
181+
//[legacy,verbose-legacy]~^ ERROR symbol-name(_ZN1a1b28Type$LT$$LP$u8$C$u16$RP$$GT$
182+
//[legacy,verbose-legacy]~| ERROR demangling(a::b::Type<(u8,u16)>::
183+
//[legacy,verbose-legacy]~| ERROR demangling-alt(a::b::Type<(u8,u16)>)
184+
//[v0]~^^^^ ERROR symbol-name(_RMsg_NvCsCRATE_HASH_1a1bINtB<REF>_4TypeThtEE)
185+
//[v0]~| ERROR ::b::Type<(u8, u16)>>)
186+
//[v0]~| ERROR demangling-alt(<a::b::Type<(u8, u16)>>)
187+
impl Type<(u8, u16)> {}
114188

115189
#[rustc_symbol_name]
116-
//~^ ERROR symbol-name(_ZN1a1b34Type$LT$$LP$u8$C$u16$C$u32$RP$$GT$
117-
//~| ERROR demangling(a::b::Type<(u8,u16,u32)>::
118-
//~| ERROR demangling-alt(a::b::Type<(u8,u16,u32)>)
119-
impl Type<(u8,u16,u32)> {}
190+
//[legacy,verbose-legacy]~^ ERROR symbol-name(_ZN1a1b34Type$LT$$LP$u8$C$u16$C$u32$RP$$GT$
191+
//[legacy,verbose-legacy]~| ERROR demangling(a::b::Type<(u8,u16,u32)>::
192+
//[legacy,verbose-legacy]~| ERROR demangling-alt(a::b::Type<(u8,u16,u32)>)
193+
//[v0]~^^^^ ERROR symbol-name(_RMsh_NvCsCRATE_HASH_1a1bINtB<REF>_4TypeThtmEE)
194+
//[v0]~| ERROR ::b::Type<(u8, u16, u32)>>)
195+
//[v0]~| ERROR demangling-alt(<a::b::Type<(u8, u16, u32)>>)
196+
impl Type<(u8, u16, u32)> {}
120197

121198
#[rustc_symbol_name]
122-
//~^ ERROR symbol-name(_ZN1a1b28Type$LT$$BP$const$u20$u8$GT$
123-
//~| ERROR demangling(a::b::Type<*const u8>::
124-
//~| ERROR demangling-alt(a::b::Type<*const u8>)
199+
//[legacy,verbose-legacy]~^ ERROR symbol-name(_ZN1a1b28Type$LT$$BP$const$u20$u8$GT$
200+
//[legacy,verbose-legacy]~| ERROR demangling(a::b::Type<*const u8>::
201+
//[legacy,verbose-legacy]~| ERROR demangling-alt(a::b::Type<*const u8>)
202+
//[v0]~^^^^ ERROR symbol-name(_RMsi_NvCsCRATE_HASH_1a1bINtB<REF>_4TypePhE)
203+
//[v0]~| ERROR ::b::Type<*const u8>>)
204+
//[v0]~| ERROR demangling-alt(<a::b::Type<*const u8>>)
125205
impl Type<*const u8> {}
126206

127207
#[rustc_symbol_name]
128-
//~^ ERROR symbol-name(_ZN1a1b26Type$LT$$BP$mut$u20$u8$GT$
129-
//~| ERROR demangling(a::b::Type<*mut u8>::
130-
//~| ERROR demangling-alt(a::b::Type<*mut u8>)
208+
//[legacy,verbose-legacy]~^ ERROR symbol-name(_ZN1a1b26Type$LT$$BP$mut$u20$u8$GT$
209+
//[legacy,verbose-legacy]~| ERROR demangling(a::b::Type<*mut u8>::
210+
//[legacy,verbose-legacy]~| ERROR demangling-alt(a::b::Type<*mut u8>)
211+
//[v0]~^^^^ ERROR symbol-name(_RMsj_NvCsCRATE_HASH_1a1bINtB<REF>_4TypeOhE)
212+
//[v0]~| ERROR ::b::Type<*mut u8>>)
213+
//[v0]~| ERROR demangling-alt(<a::b::Type<*mut u8>>)
131214
impl Type<*mut u8> {}
132215

133216
#[rustc_symbol_name]
134-
//~^ ERROR symbol-name(_ZN1a1b19Type$LT$$RF$str$GT$
135-
//~| ERROR demangling(a::b::Type<&str>::
136-
//~| ERROR demangling-alt(a::b::Type<&str>)
217+
//[legacy,verbose-legacy]~^ ERROR symbol-name(_ZN1a1b19Type$LT$$RF$str$GT$
218+
//[legacy,verbose-legacy]~| ERROR demangling(a::b::Type<&str>::
219+
//[legacy,verbose-legacy]~| ERROR demangling-alt(a::b::Type<&str>)
220+
//[v0]~^^^^ ERROR symbol-name(_RMsk_NvCsCRATE_HASH_1a1bINtB<REF>_4TypeReE)
221+
//[v0]~| ERROR ::b::Type<&str>>)
222+
//[v0]~| ERROR demangling-alt(<a::b::Type<&str>>)
137223
impl Type<&str> {}
138224

139225
#[rustc_symbol_name]
140-
//~^ ERROR symbol-name(_ZN1a1b27Type$LT$$RF$mut$u20$str$GT$
141-
//~| ERROR demangling(a::b::Type<&mut str>::
142-
//~| ERROR demangling-alt(a::b::Type<&mut str>)
226+
//[legacy,verbose-legacy]~^ ERROR symbol-name(_ZN1a1b27Type$LT$$RF$mut$u20$str$GT$
227+
//[legacy,verbose-legacy]~| ERROR demangling(a::b::Type<&mut str>::
228+
//[legacy,verbose-legacy]~| ERROR demangling-alt(a::b::Type<&mut str>)
229+
//[v0]~^^^^ ERROR symbol-name(_RMsl_NvCsCRATE_HASH_1a1bINtB<REF>_4TypeQeE)
230+
//[v0]~| ERROR ::b::Type<&mut str>>)
231+
//[v0]~| ERROR demangling-alt(<a::b::Type<&mut str>>)
143232
impl Type<&mut str> {}
144233

145234
#[rustc_symbol_name]
146-
//~^ ERROR symbol-name(_ZN1a1b35Type$LT$$u5b$u8$u3b$$u20$0$u5d$$GT$
147-
//~| ERROR demangling(a::b::Type<[u8; 0]>::
148-
//~| ERROR demangling-alt(a::b::Type<[u8; 0]>)
235+
//[legacy,verbose-legacy]~^ ERROR symbol-name(_ZN1a1b35Type$LT$$u5b$u8$u3b$$u20$0$u5d$$GT$
236+
//[legacy,verbose-legacy]~| ERROR demangling(a::b::Type<[u8; 0]>::
237+
//[legacy,verbose-legacy]~| ERROR demangling-alt(a::b::Type<[u8; 0]>)
238+
//[v0]~^^^^ ERROR symbol-name(_RMsm_NvCsCRATE_HASH_1a1bINtB<REF>_4TypeAhj0_E)
239+
//[v0]~| ERROR ::b::Type<[u8; 0usize]>>)
240+
//[v0]~| ERROR demangling-alt(<a::b::Type<[u8; 0]>>)
149241
impl Type<[u8; 0]> {}
150242

151243
#[rustc_symbol_name]
152-
//~^ ERROR symbol-name(_ZN1a1b22Type$LT$fn$LP$$RP$$GT$
153-
//~| ERROR demangling(a::b::Type<fn()>::
154-
//~| ERROR demangling-alt(a::b::Type<fn()>)
244+
//[legacy,verbose-legacy]~^ ERROR symbol-name(_ZN1a1b22Type$LT$fn$LP$$RP$$GT$
245+
//[legacy,verbose-legacy]~| ERROR demangling(a::b::Type<fn()>::
246+
//[legacy,verbose-legacy]~| ERROR demangling-alt(a::b::Type<fn()>)
247+
//[v0]~^^^^ ERROR symbol-name(_RMsn_NvCsCRATE_HASH_1a1bINtB<REF>_4TypeFEuE)
248+
//[v0]~| ERROR ::b::Type<fn()>>)
249+
//[v0]~| ERROR demangling-alt(<a::b::Type<fn()>>)
155250
impl Type<fn()> {}
156251

157252
#[rustc_symbol_name]
158-
//~^ ERROR symbol-name(_ZN1a1b60Type$LT$unsafe$u20$extern$u20$$u22$C$u22$$u20$fn$LP$$RP$$GT$
159-
//~| ERROR demangling(a::b::Type<unsafe extern "C" fn()>::
160-
//~| ERROR demangling-alt(a::b::Type<unsafe extern "C" fn()>)
253+
//[legacy,verbose-legacy]~^ ERROR symbol-name(_ZN1a1b60Type$LT$unsafe$u20$extern$u20$$u22$C$u22$$u20$fn$LP$$RP$$GT$
254+
//[legacy,verbose-legacy]~| ERROR demangling(a::b::Type<unsafe extern "C" fn()>::
255+
//[legacy,verbose-legacy]~| ERROR demangling-alt(a::b::Type<unsafe extern "C" fn()>)
256+
//[v0]~^^^^ ERROR symbol-name(_RMso_NvCsCRATE_HASH_1a1bINtB<REF>_4TypeFUKCEuE)
257+
//[v0]~| ERROR ::b::Type<unsafe extern "C" fn()>>)
258+
//[v0]~| ERROR demangling-alt(<a::b::Type<unsafe extern "C" fn()>>)
161259
impl Type<unsafe extern "C" fn()> {}
162260

163261
#[rustc_symbol_name]
164-
//~^ ERROR symbol-name(_ZN1a1b34Type$LT$$u5b$T$u3b$$u20$N$u5d$$GT$
165-
//~| ERROR demangling(a::b::Type<[T; N]>::
166-
//~| ERROR demangling-alt(a::b::Type<[T; N]>)
262+
//[legacy,verbose-legacy]~^ ERROR symbol-name(_ZN1a1b34Type$LT$$u5b$T$u3b$$u20$N$u5d$$GT$
263+
//[legacy,verbose-legacy]~| ERROR demangling(a::b::Type<[T; N]>::
264+
//[legacy,verbose-legacy]~| ERROR demangling-alt(a::b::Type<[T; N]>)
265+
//[v0]~^^^^ ERROR symbol-name(_RMsp_NvCsCRATE_HASH_1a1bINtB<REF>_4TypeAppEB<REF>_)
266+
//[v0]~| ERROR ::b::Type<[_; _]>>)
267+
//[v0]~| ERROR demangling-alt(<a::b::Type<[_; _]>>)
167268
impl<const N: usize, T> Type<[T; N]> {}
168269
}
169270

‎tests/ui/symbol-names/types.v0.stderr

+506
Large diffs are not rendered by default.

‎tests/ui/symbol-names/types.verbose-legacy.stderr

+115-79
Large diffs are not rendered by default.

0 commit comments

Comments
 (0)
Please sign in to comment.