]> git.lizzy.rs Git - rust.git/commitdiff
Add tests for macro-based impls
authorAndrew Paseltiner <apaseltiner@gmail.com>
Mon, 21 Sep 2015 14:42:18 +0000 (10:42 -0400)
committerAndrew Paseltiner <apaseltiner@gmail.com>
Mon, 21 Sep 2015 14:42:18 +0000 (10:42 -0400)
Closes #28561.

src/test/run-pass/issue-28561.rs [new file with mode: 0644]

diff --git a/src/test/run-pass/issue-28561.rs b/src/test/run-pass/issue-28561.rs
new file mode 100644 (file)
index 0000000..8c73830
--- /dev/null
@@ -0,0 +1,120 @@
+// Copyright 2015 The Rust Project Developers. See the COPYRIGHT
+// file at the top-level directory of this distribution and at
+// http://rust-lang.org/COPYRIGHT.
+//
+// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
+// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
+// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
+// option. This file may not be copied, modified, or distributed
+// except according to those terms.
+
+#[derive(Debug, Default, Eq, Hash, Ord, PartialEq, PartialOrd)]
+struct Array<T> {
+    f00: [T; 00],
+    f01: [T; 01],
+    f02: [T; 02],
+    f03: [T; 03],
+    f04: [T; 04],
+    f05: [T; 05],
+    f06: [T; 06],
+    f07: [T; 07],
+    f08: [T; 08],
+    f09: [T; 09],
+    f10: [T; 10],
+    f11: [T; 11],
+    f12: [T; 12],
+    f13: [T; 13],
+    f14: [T; 14],
+    f15: [T; 15],
+    f16: [T; 16],
+    f17: [T; 17],
+    f18: [T; 18],
+    f19: [T; 19],
+    f20: [T; 20],
+    f21: [T; 21],
+    f22: [T; 22],
+    f23: [T; 23],
+    f24: [T; 24],
+    f25: [T; 25],
+    f26: [T; 26],
+    f27: [T; 27],
+    f28: [T; 28],
+    f29: [T; 29],
+    f30: [T; 30],
+    f31: [T; 31],
+    f32: [T; 32],
+}
+
+// FIXME(#7622): merge with `Array` once `[T; N]: Clone` where `T: Clone`
+#[derive(Clone, Copy)]
+struct CopyArray<T: Copy> {
+    f00: [T; 00],
+    f01: [T; 01],
+    f02: [T; 02],
+    f03: [T; 03],
+    f04: [T; 04],
+    f05: [T; 05],
+    f06: [T; 06],
+    f07: [T; 07],
+    f08: [T; 08],
+    f09: [T; 09],
+    f10: [T; 10],
+    f11: [T; 11],
+    f12: [T; 12],
+    f13: [T; 13],
+    f14: [T; 14],
+    f15: [T; 15],
+    f16: [T; 16],
+    f17: [T; 17],
+    f18: [T; 18],
+    f19: [T; 19],
+    f20: [T; 20],
+    f21: [T; 21],
+    f22: [T; 22],
+    f23: [T; 23],
+    f24: [T; 24],
+    f25: [T; 25],
+    f26: [T; 26],
+    f27: [T; 27],
+    f28: [T; 28],
+    f29: [T; 29],
+    f30: [T; 30],
+    f31: [T; 31],
+    f32: [T; 32],
+}
+
+#[derive(Clone, Copy, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
+struct Fn<A, B, C, D, E, F, G, H, I, J, K, L> {
+    f00: fn(),
+    f01: fn(A),
+    f02: fn(A, B),
+    f03: fn(A, B, C),
+    f04: fn(A, B, C, D),
+    f05: fn(A, B, C, D, E),
+    f06: fn(A, B, C, D, E, F),
+    f07: fn(A, B, C, D, E, F, G),
+    f08: fn(A, B, C, D, E, F, G, H),
+    f09: fn(A, B, C, D, E, F, G, H, I),
+    f10: fn(A, B, C, D, E, F, G, H, I, J),
+    f11: fn(A, B, C, D, E, F, G, H, I, J, K),
+    f12: fn(A, B, C, D, E, F, G, H, I, J, K, L),
+}
+
+#[derive(Clone, Copy, Debug, Default, Eq, Hash, Ord, PartialEq, PartialOrd)]
+struct Tuple<A, B, C, D, E, F, G, H, I, J, K, L> {
+    f00: (),
+    f01: (A),
+    f02: (A, B),
+    f03: (A, B, C),
+    f04: (A, B, C, D),
+    f05: (A, B, C, D, E),
+    f06: (A, B, C, D, E, F),
+    f07: (A, B, C, D, E, F, G),
+    f08: (A, B, C, D, E, F, G, H),
+    f09: (A, B, C, D, E, F, G, H, I),
+    f10: (A, B, C, D, E, F, G, H, I, J),
+    f11: (A, B, C, D, E, F, G, H, I, J, K),
+    f12: (A, B, C, D, E, F, G, H, I, J, K, L),
+}
+
+fn main() {}