]> git.lizzy.rs Git - rust.git/blob - src/test/ui/issues/issue-16668.rs
Auto merge of #78066 - bugadani:wat, r=jonas-schievink
[rust.git] / src / test / ui / issues / issue-16668.rs
1 // check-pass
2 #![allow(dead_code)]
3 struct Parser<'a, I, O> {
4     parse: Box<dyn FnMut(I) -> Result<O, String> + 'a>
5 }
6
7 impl<'a, I: 'a, O: 'a> Parser<'a, I, O> {
8     fn compose<K: 'a>(mut self, mut rhs: Parser<'a, O, K>) -> Parser<'a, I, K> {
9         Parser {
10             parse: Box::new(move |x: I| {
11                 match (self.parse)(x) {
12                     Ok(r) => (rhs.parse)(r),
13                     Err(e) => Err(e)
14                 }
15             })
16         }
17     }
18 }
19
20 fn main() {}