1 // Copyright 2015 The Rust Project Developers. See the COPYRIGHT
2 // file at the top-level directory of this distribution and at
3 // http://rust-lang.org/COPYRIGHT.
5 // Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
6 // http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
7 // <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
8 // option. This file may not be copied, modified, or distributed
9 // except according to those terms.
13 // use different types / traits to test all combinations
24 struct StaticFnStruct;
29 struct AliasedConstStruct;
30 struct AliasedStaticFnStruct;
32 enum AliasedConstEnum {}
33 enum AliasedStaticFnEnum {}
35 type AliasConstStruct = AliasedConstStruct;
36 type AliasStaticFnStruct = AliasedStaticFnStruct;
37 type AliasConstEnum = AliasedConstEnum;
38 type AliasStaticFnEnum = AliasedStaticFnEnum;
40 macro_rules! impl_Const {($($T:ident),*) => {$(
46 macro_rules! impl_StaticFn {($($T:ident),*) => {$(
47 impl StaticFn for $T {
52 impl_Const!(ConstStruct, ConstEnum, AliasedConstStruct, AliasedConstEnum);
53 impl_StaticFn!(StaticFnStruct, StaticFnEnum, AliasedStaticFnStruct, AliasedStaticFnEnum);
56 let _ = ConstStruct::C;
59 StaticFnStruct::sfn();
62 let _ = AliasConstStruct::C;
63 let _ = AliasConstEnum::C;
65 AliasStaticFnStruct::sfn();
66 AliasStaticFnEnum::sfn();