summaryrefslogtreecommitdiffstats
path: root/third_party/rust/enumset/tests/compile-fail/variants.rs
blob: 2b76a40897635a816bcff3d035d99372ac0ec7f3 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
use enumset::*;

#[derive(EnumSetType)]
enum VariantOver127 {
    Variant = 128,
}

#[derive(EnumSetType)]
#[repr(i64)]
enum VariantOverU32 {
    Variant = 0x100000000,
}

#[derive(EnumSetType)]
enum TooManyVariants {
    _0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20,
    _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39,
    _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58,
    _59, _60, _61, _62, _63, _64, _65, _66, _67, _68, _69, _70, _71, _72, _73, _74, _75, _76, _77,
    _78, _79, _80, _81, _82, _83, _84, _85, _86, _87, _88, _89, _90, _91, _92, _93, _94, _95, _96,
    _97, _98, _99, _100, _101, _102, _103, _104, _105, _106, _107, _108, _109, _110, _111, _112,
    _113, _114, _115, _116, _117, _118, _119, _120, _121, _122, _123, _124, _125, _126, _127, _128,
}

#[derive(EnumSetType)]
enum NegativeVariant {
    Variant = -1,
}

#[derive(EnumSetType)]
#[repr(usize)]
enum BadRepr {
    Variant,
}

#[derive(EnumSetType)]
enum HasFields {
    Variant(u32),
}

#[derive(EnumSetType)]
#[enumset(serialize_repr = "u8")]
enum BadSerializationRepr {
    Variant = 8,
}

#[derive(EnumSetType)]
struct BadItemType {

}

#[derive(EnumSetType)]
#[enumset(repr = "u16")]
enum BadMemRepr {
    Variant = 16,
}

#[derive(EnumSetType)]
enum OkayEnumButCantUseFromRepr {
    Variant,
}

fn main() {
    EnumSet::<OkayEnumButCantUseFromRepr>::from_repr(1);
}