Skip to content

Commit 65bf656

Browse files
authored
Merge pull request #2206 from ehuss/enum-discriminant-generic
Add a rule that enum discriminants may not use generic parameters
2 parents 76016c6 + dcab860 commit 65bf656

File tree

1 file changed

+18
-0
lines changed

1 file changed

+18
-0
lines changed

src/items/enumerations.md

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -196,6 +196,24 @@ enum OverflowingDiscriminantError2 {
196196
}
197197
```
198198

199+
r[items.enum.discriminant.restrictions.generics]
200+
Explicit enum discriminant initializers may not use generic parameters from the enclosing enum.
201+
202+
```rust,compile_fail
203+
#[repr(u32)]
204+
enum E<'a, T, const N: u32> {
205+
Lifetime(&'a T) = {
206+
let a: &'a (); // ERROR.
207+
1
208+
},
209+
Type(T) = {
210+
let x: T; // ERROR.
211+
2
212+
},
213+
Const = N, // ERROR.
214+
}
215+
```
216+
199217
### Accessing discriminant
200218

201219
#### Via `mem::discriminant`

0 commit comments

Comments
 (0)