]> git.proxmox.com Git - rustc.git/blame - src/test/run-pass/issues/issue-23808.rs
New upstream version 1.33.0+dfsg1
[rustc.git] / src / test / run-pass / issues / issue-23808.rs
CommitLineData
b7449926 1// run-pass
0731742a 2
e9174d1e
SL
3#![deny(dead_code)]
4
5// use different types / traits to test all combinations
6
7trait Const {
8 const C: ();
9}
10
11trait StaticFn {
12 fn sfn();
13}
14
15struct ConstStruct;
16struct StaticFnStruct;
17
18enum ConstEnum {}
19enum StaticFnEnum {}
20
21struct AliasedConstStruct;
22struct AliasedStaticFnStruct;
23
24enum AliasedConstEnum {}
25enum AliasedStaticFnEnum {}
26
27type AliasConstStruct = AliasedConstStruct;
28type AliasStaticFnStruct = AliasedStaticFnStruct;
29type AliasConstEnum = AliasedConstEnum;
30type AliasStaticFnEnum = AliasedStaticFnEnum;
31
32macro_rules! impl_Const {($($T:ident),*) => {$(
33 impl Const for $T {
34 const C: () = ();
35 }
36)*}}
37
38macro_rules! impl_StaticFn {($($T:ident),*) => {$(
39 impl StaticFn for $T {
40 fn sfn() {}
41 }
42)*}}
43
44impl_Const!(ConstStruct, ConstEnum, AliasedConstStruct, AliasedConstEnum);
45impl_StaticFn!(StaticFnStruct, StaticFnEnum, AliasedStaticFnStruct, AliasedStaticFnEnum);
46
47fn main() {
48 let _ = ConstStruct::C;
49 let _ = ConstEnum::C;
50
51 StaticFnStruct::sfn();
52 StaticFnEnum::sfn();
53
54 let _ = AliasConstStruct::C;
55 let _ = AliasConstEnum::C;
56
57 AliasStaticFnStruct::sfn();
58 AliasStaticFnEnum::sfn();
59}