]> git.proxmox.com Git - rustc.git/blob - src/test/ui/issues/issue-35376.rs
New upstream version 1.41.1+dfsg1
[rustc.git] / src / test / ui / issues / issue-35376.rs
1 // check-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 }