5 // use different types / traits to test all combinations
16 struct StaticFnStruct;
21 struct AliasedConstStruct;
22 struct AliasedStaticFnStruct;
24 enum AliasedConstEnum {}
25 enum AliasedStaticFnEnum {}
27 type AliasConstStruct = AliasedConstStruct;
28 type AliasStaticFnStruct = AliasedStaticFnStruct;
29 type AliasConstEnum = AliasedConstEnum;
30 type AliasStaticFnEnum = AliasedStaticFnEnum;
32 macro_rules! impl_Const {($($T:ident),*) => {$(
38 macro_rules! impl_StaticFn {($($T:ident),*) => {$(
39 impl StaticFn for $T {
44 impl_Const!(ConstStruct, ConstEnum, AliasedConstStruct, AliasedConstEnum);
45 impl_StaticFn!(StaticFnStruct, StaticFnEnum, AliasedStaticFnStruct, AliasedStaticFnEnum);
48 let _ = ConstStruct::C;
51 StaticFnStruct::sfn();
54 let _ = AliasConstStruct::C;
55 let _ = AliasConstEnum::C;
57 AliasStaticFnStruct::sfn();
58 AliasStaticFnEnum::sfn();