Skip to content

Commit 3381673

Browse files
Add UI test for ty alias mangling
1 parent 94da537 commit 3381673

File tree

3 files changed

+110
-0
lines changed

3 files changed

+110
-0
lines changed
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
error: symbol-name(_ZN8ty_alias5Trait6method17ha7d0f40d408a4a48E)
2+
--> $DIR/ty-alias.rs:11:5
3+
|
4+
LL | #[rustc_symbol_name]
5+
| ^^^^^^^^^^^^^^^^^^^^
6+
7+
error: demangling(ty_alias::Trait::method::ha7d0f40d408a4a48)
8+
--> $DIR/ty-alias.rs:11:5
9+
|
10+
LL | #[rustc_symbol_name]
11+
| ^^^^^^^^^^^^^^^^^^^^
12+
13+
error: demangling-alt(ty_alias::Trait::method)
14+
--> $DIR/ty-alias.rs:11:5
15+
|
16+
LL | #[rustc_symbol_name]
17+
| ^^^^^^^^^^^^^^^^^^^^
18+
19+
error: symbol-name(_ZN118_$LT$ty_alias..Foo$LT$T$GT$$u20$as$u20$ty_alias..Trait$LT$$LT$T$u20$as$u20$core..ops..deref..Deref$GT$..Target$GT$$GT$6method17he3e1099a8910c704E)
20+
--> $DIR/ty-alias.rs:23:5
21+
|
22+
LL | #[rustc_symbol_name]
23+
| ^^^^^^^^^^^^^^^^^^^^
24+
25+
error: demangling(<ty_alias::Foo<T> as ty_alias::Trait<<T as core::ops::deref::Deref>::Target>>::method::he3e1099a8910c704)
26+
--> $DIR/ty-alias.rs:23:5
27+
|
28+
LL | #[rustc_symbol_name]
29+
| ^^^^^^^^^^^^^^^^^^^^
30+
31+
error: demangling-alt(<ty_alias::Foo<T> as ty_alias::Trait<<T as core::ops::deref::Deref>::Target>>::method)
32+
--> $DIR/ty-alias.rs:23:5
33+
|
34+
LL | #[rustc_symbol_name]
35+
| ^^^^^^^^^^^^^^^^^^^^
36+
37+
error: aborting due to 6 previous errors
38+

src/test/ui/symbol-names/ty-alias.rs

+34
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
// build-fail
2+
// ignore-tidy-linelength
3+
// revisions: legacy v0
4+
//[legacy]compile-flags: -Z unstable-options -C symbol-mangling-version=legacy
5+
//[v0]compile-flags: -C symbol-mangling-version=v0
6+
7+
#![feature(rustc_attrs)]
8+
#![crate_type = "lib"]
9+
10+
pub trait Trait<T: ?Sized> {
11+
#[rustc_symbol_name]
12+
//[legacy]~^ ERROR symbol-name(_ZN8ty_alias5Trait6method
13+
//[legacy]~| ERROR demangling(ty_alias::Trait::method::ha7
14+
//[legacy]~| ERROR demangling-alt(ty_alias::Trait::method)
15+
//[v0]~^^^^ ERROR symbol-name(_RNvYpINtCs7cCwHY5bdWN_8ty_alias5TraitpE6methodB6_)
16+
//[v0]~| ERROR demangling(<_ as ty_alias[53e789f59d55e7ab]::Trait<_>>::method)
17+
//[v0]~| ERROR demangling-alt(<_ as ty_alias::Trait<_>>::method)
18+
fn method() -> &'static ();
19+
}
20+
21+
pub struct Foo<T>(T);
22+
impl<T: std::ops::Deref> Trait<T::Target> for Foo<T> {
23+
#[rustc_symbol_name]
24+
//[legacy]~^ ERROR symbol-name(_ZN118_$LT$ty_alias..Foo$LT$T$GT$$u20$as$u20$ty_alias..Trait$LT$$LT$T$u20$as$u20$core..ops..deref..Deref$GT$..Target$GT$$GT$6method17
25+
//[legacy]~| ERROR demangling(<ty_alias::Foo<T> as ty_alias::Trait<<T as core::ops::deref::Deref>::Target>>::method::he3
26+
//[legacy]~| ERROR demangling-alt(<ty_alias::Foo<T> as ty_alias::Trait<<T as core::ops::deref::Deref>::Target>>::method)
27+
//[v0]~^^^^ ERROR symbol-name(_RNvXINICs7cCwHY5bdWN_8ty_alias0pEINtB5_3FoopEINtB5_5TraitNtYpNtNtNtCskRLgSi4TGgx_4core3ops5deref5Deref6TargetE6methodB5_)
28+
//[v0]~| ERROR demangling(<ty_alias[53e789f59d55e7ab]::Foo<_> as ty_alias[53e789f59d55e7ab]::Trait<<_ as core[f30d6cf379d2fe73]::ops::deref::Deref>::Target>>::method)
29+
//[v0]~| ERROR demangling-alt(<ty_alias::Foo<_> as ty_alias::Trait<<_ as core::ops::deref::Deref>::Target>>::method)
30+
fn method() -> &'static () {
31+
static FOO: () = ();
32+
&FOO
33+
}
34+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
error: symbol-name(_RNvYpINtCsCRATE_HASH_8ty_alias5TraitpE6methodB<REF>_)
2+
--> $DIR/ty-alias.rs:11:5
3+
|
4+
LL | #[rustc_symbol_name]
5+
| ^^^^^^^^^^^^^^^^^^^^
6+
7+
error: demangling(<_ as ty_alias[53e789f59d55e7ab]::Trait<_>>::method)
8+
--> $DIR/ty-alias.rs:11:5
9+
|
10+
LL | #[rustc_symbol_name]
11+
| ^^^^^^^^^^^^^^^^^^^^
12+
13+
error: demangling-alt(<_ as ty_alias::Trait<_>>::method)
14+
--> $DIR/ty-alias.rs:11:5
15+
|
16+
LL | #[rustc_symbol_name]
17+
| ^^^^^^^^^^^^^^^^^^^^
18+
19+
error: symbol-name(_RNvXINICsCRATE_HASH_8ty_alias0pEINtB<REF>_3FoopEINtB<REF>_5TraitNtYpNtNtNtCsCRATE_HASH_4core3ops5deref5Deref6TargetE6methodB<REF>_)
20+
--> $DIR/ty-alias.rs:23:5
21+
|
22+
LL | #[rustc_symbol_name]
23+
| ^^^^^^^^^^^^^^^^^^^^
24+
25+
error: demangling(<ty_alias[53e789f59d55e7ab]::Foo<_> as ty_alias[53e789f59d55e7ab]::Trait<<_ as core[f30d6cf379d2fe73]::ops::deref::Deref>::Target>>::method)
26+
--> $DIR/ty-alias.rs:23:5
27+
|
28+
LL | #[rustc_symbol_name]
29+
| ^^^^^^^^^^^^^^^^^^^^
30+
31+
error: demangling-alt(<ty_alias::Foo<_> as ty_alias::Trait<<_ as core::ops::deref::Deref>::Target>>::method)
32+
--> $DIR/ty-alias.rs:23:5
33+
|
34+
LL | #[rustc_symbol_name]
35+
| ^^^^^^^^^^^^^^^^^^^^
36+
37+
error: aborting due to 6 previous errors
38+

0 commit comments

Comments
 (0)