]> git.lizzy.rs Git - rust.git/blob - tests/ui/generic-associated-types/issue-86787.rs
Rollup merge of #103702 - WaffleLapkin:lift-sized-bounds-from-pointer-methods-where...
[rust.git] / tests / ui / generic-associated-types / issue-86787.rs
1 // check-fail
2
3 enum Either<L, R> {
4     Left(L),
5     Right(R),
6 }
7
8 pub trait HasChildrenOf {
9     type T;
10     type TRef<'a>;
11     //~^ missing required
12
13     fn ref_children<'a>(&'a self) -> Vec<Self::TRef<'a>>;
14     fn take_children(self) -> Vec<Self::T>;
15 }
16
17 impl<Left, Right> HasChildrenOf for Either<Left, Right>
18 where
19     Left: HasChildrenOf,
20     Right: HasChildrenOf,
21 {
22     type T = Either<Left::T, Right::T>;
23     type TRef<'a> = Either<&'a Left::T, &'a Right::T>
24     where
25         <Left as HasChildrenOf>::T: 'a,
26         <Right as HasChildrenOf>::T: 'a;
27
28     fn ref_children<'a>(&'a self) -> Vec<Self::TRef<'a>> {
29         todo!()
30     }
31
32     fn take_children(self) -> Vec<Self::T> {
33         todo!()
34     }
35 }
36
37 fn main() {}