]> git.lizzy.rs Git - rust.git/blob - src/test/ui/issues/issue-35376.rs
Auto merge of #57925 - fintelia:riscv-cas, r=nagisa
[rust.git] / src / test / ui / issues / issue-35376.rs
1 // compile-pass
2 #![feature(specialization)]
3
4 fn main() {}
5
6 pub trait Alpha<T> { }
7
8 pub trait Beta {
9     type Event;
10 }
11
12 pub trait Delta {
13     type Handle;
14     fn process(&self);
15 }
16
17 pub struct Parent<A, T>(A, T);
18
19 impl<A, T> Delta for Parent<A, T>
20 where A: Alpha<T::Handle>,
21       T: Delta,
22       T::Handle: Beta<Event = <Handle as Beta>::Event> {
23     type Handle = Handle;
24     default fn process(&self) {
25         unimplemented!()
26     }
27 }
28
29 impl<A, T> Delta for Parent<A, T>
30 where A: Alpha<T::Handle> + Alpha<Handle>,
31       T: Delta,
32       T::Handle: Beta<Event = <Handle as Beta>::Event> {
33       fn process(&self) {
34         unimplemented!()
35       }
36 }
37
38 pub struct Handle;
39
40 impl Beta for Handle {
41     type Event = ();
42 }