Skip to content

Commit a797801

Browse files
committed
Add test for const generics demangling
1 parent 2b9d22d commit a797801

File tree

2 files changed

+112
-0
lines changed

2 files changed

+112
-0
lines changed
Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
// build-fail
2+
// compile-flags: -Z symbol-mangling-version=v0
3+
4+
#![feature(min_const_generics, rustc_attrs)]
5+
6+
pub struct Unsigned<const F: u8>;
7+
8+
#[rustc_symbol_name]
9+
//~^ ERROR symbol-name(_RMCs4fqI2P2rA04_25const_generics_demanglingINtB0_8UnsignedKhb_E)
10+
//~| ERROR demangling(<const_generics_demangling[317d481089b8c8fe]::Unsigned<11: u8>>)
11+
//~| ERROR demangling-alt(<const_generics_demangling::Unsigned<11>>)
12+
impl Unsigned<11> {}
13+
14+
pub struct Signed<const F: i16>;
15+
16+
#[rustc_symbol_name]
17+
//~^ ERROR symbol-name(_RMs_Cs4fqI2P2rA04_25const_generics_demanglingINtB2_6SignedKsn98_E)
18+
//~| ERROR demangling(<const_generics_demangling[317d481089b8c8fe]::Signed<-152: i16>>)
19+
//~| ERROR demangling-alt(<const_generics_demangling::Signed<-152>>)
20+
impl Signed<-152> {}
21+
22+
pub struct Bool<const F: bool>;
23+
24+
#[rustc_symbol_name]
25+
//~^ ERROR symbol-name(_RMs0_Cs4fqI2P2rA04_25const_generics_demanglingINtB3_4BoolKb1_E)
26+
//~| ERROR demangling(<const_generics_demangling[317d481089b8c8fe]::Bool<true: bool>>)
27+
//~| ERROR demangling-alt(<const_generics_demangling::Bool<true>>)
28+
impl Bool<true> {}
29+
30+
pub struct Char<const F: char>;
31+
32+
#[rustc_symbol_name]
33+
//~^ ERROR symbol-name(_RMs1_Cs4fqI2P2rA04_25const_generics_demanglingINtB3_4CharKc2202_E)
34+
//~| ERROR demangling(<const_generics_demangling[317d481089b8c8fe]::Char<'∂': char>>)
35+
//~| ERROR demangling-alt(<const_generics_demangling::Char<'∂'>>)
36+
impl Char<'∂'> {}
37+
38+
fn main() {}
Lines changed: 74 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,74 @@
1+
error: symbol-name(_RMCs4fqI2P2rA04_25const_generics_demanglingINtB0_8UnsignedKhb_E)
2+
--> $DIR/const-generics-demangling.rs:8:1
3+
|
4+
LL | #[rustc_symbol_name]
5+
| ^^^^^^^^^^^^^^^^^^^^
6+
7+
error: demangling(<const_generics_demangling[317d481089b8c8fe]::Unsigned<11: u8>>)
8+
--> $DIR/const-generics-demangling.rs:8:1
9+
|
10+
LL | #[rustc_symbol_name]
11+
| ^^^^^^^^^^^^^^^^^^^^
12+
13+
error: demangling-alt(<const_generics_demangling::Unsigned<11>>)
14+
--> $DIR/const-generics-demangling.rs:8:1
15+
|
16+
LL | #[rustc_symbol_name]
17+
| ^^^^^^^^^^^^^^^^^^^^
18+
19+
error: symbol-name(_RMs_Cs4fqI2P2rA04_25const_generics_demanglingINtB2_6SignedKsn98_E)
20+
--> $DIR/const-generics-demangling.rs:16:1
21+
|
22+
LL | #[rustc_symbol_name]
23+
| ^^^^^^^^^^^^^^^^^^^^
24+
25+
error: demangling(<const_generics_demangling[317d481089b8c8fe]::Signed<-152: i16>>)
26+
--> $DIR/const-generics-demangling.rs:16:1
27+
|
28+
LL | #[rustc_symbol_name]
29+
| ^^^^^^^^^^^^^^^^^^^^
30+
31+
error: demangling-alt(<const_generics_demangling::Signed<-152>>)
32+
--> $DIR/const-generics-demangling.rs:16:1
33+
|
34+
LL | #[rustc_symbol_name]
35+
| ^^^^^^^^^^^^^^^^^^^^
36+
37+
error: symbol-name(_RMs0_Cs4fqI2P2rA04_25const_generics_demanglingINtB3_4BoolKb1_E)
38+
--> $DIR/const-generics-demangling.rs:24:1
39+
|
40+
LL | #[rustc_symbol_name]
41+
| ^^^^^^^^^^^^^^^^^^^^
42+
43+
error: demangling(<const_generics_demangling[317d481089b8c8fe]::Bool<true: bool>>)
44+
--> $DIR/const-generics-demangling.rs:24:1
45+
|
46+
LL | #[rustc_symbol_name]
47+
| ^^^^^^^^^^^^^^^^^^^^
48+
49+
error: demangling-alt(<const_generics_demangling::Bool<true>>)
50+
--> $DIR/const-generics-demangling.rs:24:1
51+
|
52+
LL | #[rustc_symbol_name]
53+
| ^^^^^^^^^^^^^^^^^^^^
54+
55+
error: symbol-name(_RMs1_Cs4fqI2P2rA04_25const_generics_demanglingINtB3_4CharKc2202_E)
56+
--> $DIR/const-generics-demangling.rs:32:1
57+
|
58+
LL | #[rustc_symbol_name]
59+
| ^^^^^^^^^^^^^^^^^^^^
60+
61+
error: demangling(<const_generics_demangling[317d481089b8c8fe]::Char<'∂': char>>)
62+
--> $DIR/const-generics-demangling.rs:32:1
63+
|
64+
LL | #[rustc_symbol_name]
65+
| ^^^^^^^^^^^^^^^^^^^^
66+
67+
error: demangling-alt(<const_generics_demangling::Char<'∂'>>)
68+
--> $DIR/const-generics-demangling.rs:32:1
69+
|
70+
LL | #[rustc_symbol_name]
71+
| ^^^^^^^^^^^^^^^^^^^^
72+
73+
error: aborting due to 12 previous errors
74+

0 commit comments

Comments
 (0)