]> git.proxmox.com Git - rustc.git/blame - src/test/ui/issues/issue-56229.rs
New upstream version 1.60.0+dfsg1
[rustc.git] / src / test / ui / issues / issue-56229.rs
CommitLineData
29967ef6
XL
1// check-pass
2
3trait Mirror {
4 type Other;
5}
6
7#[derive(Debug)]
8struct Even(usize);
9struct Odd;
10
11impl Mirror for Even {
12 type Other = Odd;
13}
14
15impl Mirror for Odd {
16 type Other = Even;
17}
18
19trait Dyn<T: Mirror>: AsRef<<T as Mirror>::Other> {}
20
21impl Dyn<Odd> for Even {}
22
23impl AsRef<Even> for Even {
24 fn as_ref(&self) -> &Even {
25 self
26 }
27}
28
29fn code<T: Mirror>(d: &dyn Dyn<T>) -> &T::Other {
30 d.as_ref()
31}
32
33fn main() {
34 println!("{:?}", code(&Even(22)));
35}