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.
4 //
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.
10
11 #![allow(clippy::zero_prefixed_literal, clippy::type_complexity)]
12
13 #[cfg(feature = "use_core")]
14 extern crate core;
15
16 #[macro_use]
17 extern crate derivative;
18
19 #[derive(Derivative)]
20 #[derivative(Debug, Default, Eq, Hash, PartialEq)]
21 // TODO: Ord, PartialOrd
22 struct Array<T> {
23 f00: [T; 00],
24 f01: [T; 01],
25 f02: [T; 02],
26 f03: [T; 03],
27 f04: [T; 04],
28 f05: [T; 05],
29 f06: [T; 06],
30 f07: [T; 07],
31 f08: [T; 08],
32 f09: [T; 09],
33 f10: [T; 10],
34 f11: [T; 11],
35 f12: [T; 12],
36 f13: [T; 13],
37 f14: [T; 14],
38 f15: [T; 15],
39 f16: [T; 16],
40 f17: [T; 17],
41 f18: [T; 18],
42 f19: [T; 19],
43 f20: [T; 20],
44 f21: [T; 21],
45 f22: [T; 22],
46 f23: [T; 23],
47 f24: [T; 24],
48 f25: [T; 25],
49 f26: [T; 26],
50 f27: [T; 27],
51 f28: [T; 28],
52 f29: [T; 29],
53 f30: [T; 30],
54 f31: [T; 31],
55 f32: [T; 32],
56 }
57
58 // FIXME(#7622): merge with `Array` once `[T; N]: Clone` where `T: Clone`
59 #[derive(Derivative)]
60 #[derivative(Clone, Copy)]
61 struct CopyArray<T: Copy> {
62 f00: [T; 00],
63 f01: [T; 01],
64 f02: [T; 02],
65 f03: [T; 03],
66 f04: [T; 04],
67 f05: [T; 05],
68 f06: [T; 06],
69 f07: [T; 07],
70 f08: [T; 08],
71 f09: [T; 09],
72 f10: [T; 10],
73 f11: [T; 11],
74 f12: [T; 12],
75 f13: [T; 13],
76 f14: [T; 14],
77 f15: [T; 15],
78 f16: [T; 16],
79 f17: [T; 17],
80 f18: [T; 18],
81 f19: [T; 19],
82 f20: [T; 20],
83 f21: [T; 21],
84 f22: [T; 22],
85 f23: [T; 23],
86 f24: [T; 24],
87 f25: [T; 25],
88 f26: [T; 26],
89 f27: [T; 27],
90 f28: [T; 28],
91 f29: [T; 29],
92 f30: [T; 30],
93 f31: [T; 31],
94 f32: [T; 32],
95 }
96
97 #[derive(Derivative)]
98 #[derivative(Clone, Copy, Debug, Eq, Hash, PartialEq)]
99 // TODO: Ord, PartialOrd
100 struct Fn<A, B, C, D, E, F, G, H, I, J, K, L> {
101 f00: fn(),
102 f01: fn(A),
103 f02: fn(A, B),
104 f03: fn(A, B, C),
105 f04: fn(A, B, C, D),
106 f05: fn(A, B, C, D, E),
107 f06: fn(A, B, C, D, E, F),
108 f07: fn(A, B, C, D, E, F, G),
109 f08: fn(A, B, C, D, E, F, G, H),
110 f09: fn(A, B, C, D, E, F, G, H, I),
111 f10: fn(A, B, C, D, E, F, G, H, I, J),
112 f11: fn(A, B, C, D, E, F, G, H, I, J, K),
113 f12: fn(A, B, C, D, E, F, G, H, I, J, K, L),
114 }
115
116 #[derive(Derivative)]
117 #[derivative(Clone, Copy, Debug, Default, Eq, Hash, PartialEq)]
118 // TODO: Ord, PartialOrd
119 struct Tuple<A, B, C, D, E, F, G, H, I, J, K, L> {
120 f00: (),
121 f01: (A,),
122 f02: (A, B),
123 f03: (A, B, C),
124 f04: (A, B, C, D),
125 f05: (A, B, C, D, E),
126 f06: (A, B, C, D, E, F),
127 f07: (A, B, C, D, E, F, G),
128 f08: (A, B, C, D, E, F, G, H),
129 f09: (A, B, C, D, E, F, G, H, I),
130 f10: (A, B, C, D, E, F, G, H, I, J),
131 f11: (A, B, C, D, E, F, G, H, I, J, K),
132 f12: (A, B, C, D, E, F, G, H, I, J, K, L),
133 }
134
135 #[test]
main()136 fn main() {}
137