]> git.lizzy.rs Git - rust.git/blob - src/test/ui/impl-trait/hidden-type-is-opaque.rs
Auto merge of #93681 - Mark-Simulacrum:rlink-binary, r=davidtwco,bjorn3
[rust.git] / src / test / ui / impl-trait / hidden-type-is-opaque.rs
1 // check-pass
2
3 fn reify_as() -> Thunk<impl ContFn> {
4     Thunk::new(|mut cont| {
5         cont.reify_as();
6         cont
7     })
8 }
9
10 #[must_use]
11 struct Thunk<F>(F);
12
13 impl<F> Thunk<F> {
14     fn new(f: F) -> Self
15     where
16         F: FnOnce(Continuation) -> Continuation,
17     {
18         Thunk(f)
19     }
20 }
21
22 trait ContFn {}
23
24 impl<F: FnOnce(Continuation) -> Continuation> ContFn for F {}
25
26 struct Continuation;
27
28 impl Continuation {
29     fn reify_as(&mut self) {}
30 }
31
32 fn main() {}