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
5 // normalize-stderr-test: "h[[:xdigit:]]{16}" -> "h[HASH]"
7 #![feature(never_type)]
8 #![feature(rustc_attrs)]
11 struct Type<T: ?Sized>(T);
14 //~^ ERROR symbol-name(_ZN1a1b16Type$LT$bool$GT$
15 //~| ERROR demangling(a::b::Type<bool>::
16 //~| ERROR demangling-alt(a::b::Type<bool>)
20 //~^ ERROR symbol-name(_ZN1a1b16Type$LT$char$GT$
21 //~| ERROR demangling(a::b::Type<char>::
22 //~| ERROR demangling-alt(a::b::Type<char>)
26 //~^ ERROR symbol-name(_ZN1a1b14Type$LT$i8$GT$
27 //~| ERROR demangling(a::b::Type<i8>::
28 //~| ERROR demangling-alt(a::b::Type<i8>)
32 //~^ ERROR symbol-name(_ZN1a1b15Type$LT$i16$GT$
33 //~| ERROR demangling(a::b::Type<i16>::
34 //~| ERROR demangling-alt(a::b::Type<i16>)
38 //~^ ERROR symbol-name(_ZN1a1b15Type$LT$i32$GT$
39 //~| ERROR demangling(a::b::Type<i32>::
40 //~| ERROR demangling-alt(a::b::Type<i32>)
44 //~^ ERROR symbol-name(_ZN1a1b15Type$LT$i64$GT$
45 //~| ERROR demangling(a::b::Type<i64>::
46 //~| ERROR demangling-alt(a::b::Type<i64>)
50 //~^ ERROR symbol-name(_ZN1a1b14Type$LT$u8$GT$
51 //~| ERROR demangling(a::b::Type<u8>::
52 //~| ERROR demangling-alt(a::b::Type<u8>)
56 //~^ ERROR symbol-name(_ZN1a1b15Type$LT$u16$GT$
57 //~| ERROR demangling(a::b::Type<u16>::
58 //~| ERROR demangling-alt(a::b::Type<u16>)
62 //~^ ERROR symbol-name(_ZN1a1b15Type$LT$u32$GT$
63 //~| ERROR demangling(a::b::Type<u32>::
64 //~| ERROR demangling-alt(a::b::Type<u32>)
68 //~^ ERROR symbol-name(_ZN1a1b15Type$LT$u64$GT$
69 //~| ERROR demangling(a::b::Type<u64>::
70 //~| ERROR demangling-alt(a::b::Type<u64>)
74 //~^ ERROR symbol-name(_ZN1a1b15Type$LT$f32$GT$
75 //~| ERROR demangling(a::b::Type<f32>::
76 //~| ERROR demangling-alt(a::b::Type<f32>)
80 //~^ ERROR symbol-name(_ZN1a1b15Type$LT$f64$GT$
81 //~| ERROR demangling(a::b::Type<f64>::
82 //~| ERROR demangling-alt(a::b::Type<f64>)
86 //~^ ERROR symbol-name(_ZN1a1b15Type$LT$str$GT$
87 //~| ERROR demangling(a::b::Type<str>::
88 //~| ERROR demangling-alt(a::b::Type<str>)
92 //~^ ERROR symbol-name(_ZN1a1b17Type$LT$$u21$$GT$
93 //~| ERROR demangling(a::b::Type<!>::
94 //~| ERROR demangling-alt(a::b::Type<!>)
98 //~^ ERROR symbol-name(_ZN1a1b20Type$LT$$LP$$RP$$GT
99 //~| ERROR demangling(a::b::Type<()>::
100 //~| ERROR demangling-alt(a::b::Type<()>)
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,)>)
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)> {}
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)> {}
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>)
125 impl Type<*const u8> {}
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>)
131 impl Type<*mut u8> {}
134 //~^ ERROR symbol-name(_ZN1a1b19Type$LT$$RF$str$GT$
135 //~| ERROR demangling(a::b::Type<&str>::
136 //~| ERROR demangling-alt(a::b::Type<&str>)
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>)
143 impl Type<&mut str> {}
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]>)
149 impl Type<[u8; 0]> {}
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()>)
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()>)
161 impl Type<unsafe extern "C" fn()> {}
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]>)
167 impl<const N: usize, T> Type<[T; N]> {}