| // check-pass | |
| trait Service { | |
| type S; | |
| } | |
| trait Framing { | |
| type F; | |
| } | |
| impl Framing for () { | |
| type F = (); | |
| } | |
| trait HttpService<F: Framing>: Service<S = F::F> {} | |
| type BoxService = Box<dyn HttpService<(), S = ()>>; | |
| fn build_server<F: FnOnce() -> BoxService>(_: F) {} | |
| fn make_server<F: Framing>() -> Box<dyn HttpService<F, S = F::F>> { | |
| unimplemented!() | |
| } | |
| fn main() { | |
| build_server(|| make_server()) | |
| } |