]> git.ipfire.org Git - thirdparty/gcc.git/blob - gcc/testsuite/gdc.test/compilable/test9701.d
d: Import dmd b8384668f, druntime e6caaab9, phobos 5ab9ad256 (v2.098.0-beta.1)
[thirdparty/gcc.git] / gcc / testsuite / gdc.test / compilable / test9701.d
1 // https://issues.dlang.org/show_bug.cgi?id=9701
2 /*
3 TEST_OUTPUT:
4 ---
5 compilable/test9701.d(68): Deprecation: enum member `test9701.Enum.value7` is deprecated
6 compilable/test9701.d(68): Deprecation: enum member `test9701.Enum.value8` is deprecated - message
7 ---
8 */
9
10 template AliasSeq(TList...)
11 {
12 alias AliasSeq = TList;
13 }
14
15 enum
16 {
17 uda4,
18 uda5,
19 uda6,
20 uda8,
21 uda9
22 }
23
24 enum Enum
25 {
26 value0,
27 @("uda1") value1,
28 @("uda2", "uda3", 42) value2,
29 @uda4 value3,
30 @uda5 @uda6 value4,
31 @("uda7") @uda8 value5,
32 @uda9 @("uda10") value6,
33 deprecated value7,
34 deprecated("message") value8,
35 }
36
37 @("uda0")
38 enum
39 {
40 value0,
41 @("uda1") value1,
42 @("uda2") @("uda3") value2,
43 @uda4 value3,
44 @uda5 @uda6 value4,
45 @("uda7") @uda8 value5,
46 @uda9 @("uda10") value6
47 }
48
49 static assert(__traits(getAttributes, Enum.value0).length == 0);
50 static assert(__traits(getAttributes, Enum.value1) == AliasSeq!("uda1"));
51 static assert(__traits(getAttributes, Enum.value2) == AliasSeq!("uda2", "uda3", 42));
52 static assert(__traits(getAttributes, Enum.value3) == AliasSeq!(uda4));
53 static assert(__traits(getAttributes, Enum.value4) == AliasSeq!(uda5, uda6));
54 static assert(__traits(getAttributes, Enum.value5) == AliasSeq!("uda7", uda8));
55 static assert(__traits(getAttributes, Enum.value6) == AliasSeq!(uda9, "uda10"));
56 static assert(__traits(isDeprecated, Enum.value7));
57 static assert(__traits(isDeprecated, Enum.value8));
58
59 static assert(__traits(getAttributes, value0) == AliasSeq!("uda0"));
60 static assert(__traits(getAttributes, value1) == AliasSeq!("uda0", "uda1"));
61 static assert(__traits(getAttributes, value2) == AliasSeq!("uda0", "uda2", "uda3"));
62 static assert(__traits(getAttributes, value3) == AliasSeq!("uda0", uda4));
63 static assert(__traits(getAttributes, value4) == AliasSeq!("uda0", uda5, uda6));
64 static assert(__traits(getAttributes, value5) == AliasSeq!("uda0", "uda7", uda8));
65 static assert(__traits(getAttributes, value6) == AliasSeq!("uda0", uda9, "uda10"));
66
67 // Test that messages are correctly displayed
68 static assert(Enum.value7 != Enum.value8);