]> git.lizzy.rs Git - rust.git/blob - tests/target/trait.rs
Tidy up and pass tests
[rust.git] / tests / target / trait.rs
1 // Test traits
2
3 trait Foo {
4     fn bar(x: i32) -> Baz<U> {
5         Baz::new()
6     }
7
8     fn baz(a: AAAAAAAAAAAAAAAAAAAAAA, b: BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB) -> RetType;
9
10     fn foo(
11         a: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA, // Another comment
12         b: BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB,
13     ) -> RetType; // Some comment
14
15     fn baz(&mut self) -> i32;
16
17     fn increment(&mut self, x: i32);
18
19     fn read(&mut self, x: BufReader<R> /* Used to be MemReader */)
20     where
21         R: Read;
22 }
23
24 pub trait WriteMessage {
25     fn write_message(&mut self, &FrontendMessage) -> io::Result<()>;
26 }
27
28 trait Runnable {
29     fn handler(self: &Runnable);
30 }
31
32 trait TraitWithExpr {
33     fn fn_with_expr(x: [i32; 1]);
34 }
35
36 trait Test {
37     fn read_struct<T, F>(&mut self, s_name: &str, len: usize, f: F) -> Result<T, Self::Error>
38     where
39         F: FnOnce(&mut Self) -> Result<T, Self::Error>;
40 }
41
42 trait T {}
43
44 trait Foo {
45     type Bar: Baz;
46     type Inner: Foo = Box<Foo>;
47 }
48
49 trait ConstCheck<T>: Foo
50 where
51     T: Baz,
52 {
53     const J: i32;
54 }
55
56 trait Tttttttttttttttttttttttttttttttttttttttttttttttttttttttttt<T>
57 where
58     T: Foo,
59 {
60 }
61
62 trait Ttttttttttttttttttttttttttttttttttttttttttttttttttttttttttt<T>
63 where
64     T: Foo,
65 {
66 }
67
68 trait FooBar<T>
69     : Tttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttt
70 where
71     J: Bar,
72 {
73     fn test();
74 }
75
76 trait WhereList<T, J>
77 where
78     T: Foo,
79     J: Bar,
80 {
81 }
82
83 trait X /* comment */ {}
84 trait Y // comment
85 {
86 }
87
88 // #2055
89 pub trait Foo:
90 // A and C
91 A + C
92 // and B
93     + B
94 {}
95
96 // #2158
97 trait Foo {
98     type ItRev = <MergingUntypedTimeSeries<SliceSeries<SliceWindow>> as UntypedTimeSeries>::IterRev;
99     type IteRev =
100         <MergingUntypedTimeSeries<SliceSeries<SliceWindow>> as UntypedTimeSeries>::IterRev;
101 }
102
103 // #2331
104 trait MyTrait<
105     AAAAAAAAAAAAAAAAAAAA,
106     BBBBBBBBBBBBBBBBBBBB,
107     CCCCCCCCCCCCCCCCCCCC,
108     DDDDDDDDDDDDDDDDDDDD,
109 > {
110     fn foo() {}
111 }
112
113 // Trait aliases
114 trait FooBar = Foo + Bar;
115 trait FooBar<A, B, C> = Foo + Bar;
116 trait AAAAAAAAAAAAAAAAAA = BBBBBBBBBBBBBBBBBBB + CCCCCCCCCCCCCCCCCCCCCCCCCCCCC + DDDDDDDDDDDDDDDDDD;
117 trait AAAAAAAAAAAAAAAAAAA =
118     BBBBBBBBBBBBBBBBBBB + CCCCCCCCCCCCCCCCCCCCCCCCCCCCC + DDDDDDDDDDDDDDDDDD;
119 trait AAAAAAAAAAAAAAAAAA =
120     BBBBBBBBBBBBBBBBBBB + CCCCCCCCCCCCCCCCCCCCCCCCCCCCC + DDDDDDDDDDDDDDDDDDD;
121 trait AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA<A, B, C, D, E> =
122     FooBar;
123 trait AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA<
124     A,
125     B,
126     C,
127     D,
128     E,
129 > = FooBar;
130 #[rustfmt_skip]
131 trait FooBar = Foo
132     + Bar;