Skip to content

Commit ff7612c

Browse files
Add tests for enum discriminant value display with repr
1 parent 3ce7dd2 commit ff7612c

File tree

2 files changed

+98
-0
lines changed

2 files changed

+98
-0
lines changed

tests/rustdoc/auxiliary/enum-variant.rs

+24
Original file line numberDiff line numberDiff line change
@@ -22,3 +22,27 @@ pub enum H {
2222
A,
2323
C(u32),
2424
}
25+
26+
#[repr(C)]
27+
pub enum N {
28+
A,
29+
B,
30+
}
31+
32+
#[repr(C)]
33+
pub enum O {
34+
A(u32),
35+
B,
36+
}
37+
38+
#[repr(u32)]
39+
pub enum P {
40+
A,
41+
B,
42+
}
43+
44+
#[repr(u32)]
45+
pub enum Q {
46+
A(u32),
47+
B,
48+
}

tests/rustdoc/enum-variant-value.rs

+74
Original file line numberDiff line numberDiff line change
@@ -115,3 +115,77 @@ pub enum I {
115115
C = Self::B as isize + X + 3,
116116
D = -1,
117117
}
118+
119+
// Testing `repr`.
120+
121+
// @has 'foo/enum.J.html'
122+
// @has - '//*[@class="rust item-decl"]/code' 'A = 0,'
123+
// @has - '//*[@class="rust item-decl"]/code' 'B = 1,'
124+
// @matches - '//*[@id="variant.A"]/h3' '^A = 0$'
125+
// @matches - '//*[@id="variant.B"]/h3' '^B = 1$'
126+
#[repr(C)]
127+
pub enum J {
128+
A,
129+
B,
130+
}
131+
132+
// @has 'foo/enum.K.html'
133+
// @has - '//*[@class="rust item-decl"]/code' 'A(u32),'
134+
// @has - '//*[@class="rust item-decl"]/code' 'B,'
135+
// @has - '//*[@id="variant.A"]/h3' 'A(u32)'
136+
// @matches - '//*[@id="variant.B"]/h3' '^B$'
137+
#[repr(C)]
138+
pub enum K {
139+
A(u32),
140+
B,
141+
}
142+
143+
// @has 'foo/enum.L.html'
144+
// @has - '//*[@class="rust item-decl"]/code' 'A = 0,'
145+
// @has - '//*[@class="rust item-decl"]/code' 'B = 1,'
146+
// @matches - '//*[@id="variant.A"]/h3' '^A = 0$'
147+
// @matches - '//*[@id="variant.B"]/h3' '^B = 1$'
148+
#[repr(u32)]
149+
pub enum L {
150+
A,
151+
B,
152+
}
153+
154+
// @has 'foo/enum.M.html'
155+
// @has - '//*[@class="rust item-decl"]/code' 'A(u32),'
156+
// @has - '//*[@class="rust item-decl"]/code' 'B,'
157+
// @has - '//*[@id="variant.A"]/h3' 'A(u32)'
158+
// @matches - '//*[@id="variant.B"]/h3' '^B$'
159+
#[repr(u32)]
160+
pub enum M {
161+
A(u32),
162+
B,
163+
}
164+
165+
// @has 'foo/enum.N.html'
166+
// @has - '//*[@class="rust item-decl"]/code' 'A = 0,'
167+
// @has - '//*[@class="rust item-decl"]/code' 'B = 1,'
168+
// @matches - '//*[@id="variant.A"]/h3' '^A = 0$'
169+
// @matches - '//*[@id="variant.B"]/h3' '^B = 1$'
170+
pub use bar::N;
171+
172+
// @has 'foo/enum.O.html'
173+
// @has - '//*[@class="rust item-decl"]/code' 'A(u32),'
174+
// @has - '//*[@class="rust item-decl"]/code' 'B,'
175+
// @has - '//*[@id="variant.A"]/h3' 'A(u32)'
176+
// @matches - '//*[@id="variant.B"]/h3' '^B$'
177+
pub use bar::O;
178+
179+
// @has 'foo/enum.P.html'
180+
// @has - '//*[@class="rust item-decl"]/code' 'A = 0,'
181+
// @has - '//*[@class="rust item-decl"]/code' 'B = 1,'
182+
// @matches - '//*[@id="variant.A"]/h3' '^A = 0$'
183+
// @matches - '//*[@id="variant.B"]/h3' '^B = 1$'
184+
pub use bar::P;
185+
186+
// @has 'foo/enum.Q.html'
187+
// @has - '//*[@class="rust item-decl"]/code' 'A(u32),'
188+
// @has - '//*[@class="rust item-decl"]/code' 'B,'
189+
// @has - '//*[@id="variant.A"]/h3' 'A(u32)'
190+
// @matches - '//*[@id="variant.B"]/h3' '^B$'
191+
pub use bar::Q;

0 commit comments

Comments
 (0)