]>
Commit | Line | Data |
---|---|---|
dfeec247 | 1 | // build-fail |
dc9dc135 XL |
2 | // revisions: legacy v0 |
3 | //[legacy]compile-flags: -Z symbol-mangling-version=legacy | |
4 | //[v0]compile-flags: -Z symbol-mangling-version=v0 | |
6a06907d | 5 | //[legacy]normalize-stderr-test: "h[\w]{16}E?\)" -> "<SYMBOL_HASH>)" |
dc9dc135 | 6 | |
fc512014 | 7 | #![feature(auto_traits, rustc_attrs)] |
54a0048b SL |
8 | #![allow(dead_code)] |
9 | ||
10 | mod foo { | |
11 | pub struct Foo { x: u32 } | |
12 | ||
13 | impl Foo { | |
dc9dc135 XL |
14 | #[rustc_symbol_name] |
15 | //[legacy]~^ ERROR symbol-name(_ZN5impl13foo3Foo3bar | |
16 | //[legacy]~| ERROR demangling(impl1::foo::Foo::bar | |
17 | //[legacy]~| ERROR demangling-alt(impl1::foo::Foo::bar) | |
136023e0 XL |
18 | //[v0]~^^^^ ERROR symbol-name(_RNvMNtCs2qSCrjELJET_5impl13fooNtB2_3Foo3bar) |
19 | //[v0]~| ERROR demangling(<impl1[1c5860ab79c9e305]::foo::Foo>::bar) | |
dc9dc135 XL |
20 | //[v0]~| ERROR demangling-alt(<impl1::foo::Foo>::bar) |
21 | #[rustc_def_path] | |
22 | //[legacy]~^ ERROR def-path(foo::Foo::bar) | |
23 | //[v0]~^^ ERROR def-path(foo::Foo::bar) | |
54a0048b SL |
24 | fn bar() { } |
25 | } | |
26 | } | |
27 | ||
28 | mod bar { | |
29 | use foo::Foo; | |
30 | ||
31 | impl Foo { | |
dc9dc135 XL |
32 | #[rustc_symbol_name] |
33 | //[legacy]~^ ERROR symbol-name(_ZN5impl13bar33_$LT$impl$u20$impl1..foo..Foo$GT$3baz | |
34 | //[legacy]~| ERROR demangling(impl1::bar::<impl impl1::foo::Foo>::baz | |
35 | //[legacy]~| ERROR demangling-alt(impl1::bar::<impl impl1::foo::Foo>::baz) | |
136023e0 XL |
36 | //[v0]~^^^^ ERROR symbol-name(_RNvMNtCs2qSCrjELJET_5impl13barNtNtB4_3foo3Foo3baz) |
37 | //[v0]~| ERROR demangling(<impl1[1c5860ab79c9e305]::foo::Foo>::baz) | |
dc9dc135 XL |
38 | //[v0]~| ERROR demangling-alt(<impl1::foo::Foo>::baz) |
39 | #[rustc_def_path] | |
40 | //[legacy]~^ ERROR def-path(bar::<impl foo::Foo>::baz) | |
41 | //[v0]~^^ ERROR def-path(bar::<impl foo::Foo>::baz) | |
54a0048b SL |
42 | fn baz() { } |
43 | } | |
44 | } | |
45 | ||
dc9dc135 XL |
46 | trait Foo { |
47 | type Assoc; | |
48 | } | |
49 | ||
50 | auto trait AutoTrait {} | |
51 | ||
54a0048b | 52 | fn main() { |
dc9dc135 XL |
53 | // Test closure mangling, and disambiguators. |
54 | || {}; | |
55 | || { | |
56 | trait Bar { | |
57 | fn method(&self) {} | |
58 | } | |
59 | ||
60 | // Test type mangling, by putting them in an `impl` header. | |
5869c6ff | 61 | impl Bar for [&'_ (dyn Foo<Assoc = extern "C" fn(&u8, ...)> + AutoTrait); 3] { |
dc9dc135 | 62 | #[rustc_symbol_name] |
dfeec247 XL |
63 | //[legacy]~^ ERROR symbol-name(_ZN209_$LT$$u5b$$RF$dyn$u20$impl1..Foo$u2b$Assoc$u20$$u3d$$u20$extern$u20$$u22$C$u22$$u20$fn$LP$$RF$u8$C$$u20$...$RP$$u2b$impl1..AutoTrait$u3b$$u20$3$u5d$$u20$as$u20$impl1..main..$u7b$$u7b$closure$u7d$$u7d$..Bar$GT$6method |
64 | //[legacy]~| ERROR demangling(<[&dyn impl1::Foo+Assoc = extern "C" fn(&u8, ::.)+impl1::AutoTrait; 3] as impl1::main::{{closure}}::Bar>::method | |
65 | //[legacy]~| ERROR demangling-alt(<[&dyn impl1::Foo+Assoc = extern "C" fn(&u8, ::.)+impl1::AutoTrait; 3] as impl1::main::{{closure}}::Bar>::method) | |
136023e0 | 66 | //[v0]~^^^^ ERROR symbol-name(_RNvXNCNvCs2qSCrjELJET_5impl14mains_0ARDNtB6_3Foop5AssocFG_KCRL0_hvEuNtB6_9AutoTraitEL_j3_NtB2_3Bar6method) |
94222f64 | 67 | //[v0]~| ERROR demangling(<[&dyn impl1[1c5860ab79c9e305]::Foo<Assoc = for<'a> extern "C" fn(&'a u8, ...)> + impl1[1c5860ab79c9e305]::AutoTrait; 3usize] as impl1[1c5860ab79c9e305]::main::{closure#1}::Bar>::method) |
e74abb32 | 68 | //[v0]~| ERROR demangling-alt(<[&dyn impl1::Foo<Assoc = for<'a> extern "C" fn(&'a u8, ...)> + impl1::AutoTrait; 3] as impl1::main::{closure#1}::Bar>::method) |
dc9dc135 | 69 | #[rustc_def_path] |
29967ef6 XL |
70 | //[legacy]~^ ERROR def-path(<[&dyn Foo<Assoc = for<'r> extern "C" fn(&'r u8, ...)> + AutoTrait; 3] as main::{closure#1}::Bar>::method) |
71 | //[v0]~^^ ERROR def-path(<[&dyn Foo<Assoc = for<'r> extern "C" fn(&'r u8, ...)> + AutoTrait; 3] as main::{closure#1}::Bar>::method) | |
dc9dc135 XL |
72 | fn method(&self) {} |
73 | } | |
74 | }; | |
54a0048b | 75 | } |