Skip to content

Commit 0689a4f

Browse files
committed
Add regression test
1 parent 75fd074 commit 0689a4f

File tree

1 file changed

+32
-0
lines changed

1 file changed

+32
-0
lines changed
Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
//@ check-pass
2+
3+
use std::iter::FromIterator;
4+
5+
struct DynamicAlt<P>(P);
6+
7+
impl<P> FromIterator<P> for DynamicAlt<P> {
8+
fn from_iter<T: IntoIterator<Item = P>>(_iter: T) -> Self {
9+
loop {}
10+
}
11+
}
12+
13+
fn owned_context<I, F>(_: F) -> impl FnMut(I) -> I {
14+
|i| i
15+
}
16+
17+
trait Parser<I> {}
18+
19+
impl<T, I> Parser<I> for T where T: FnMut(I) -> I {}
20+
21+
fn alt<I, P: Parser<I>>(_: DynamicAlt<P>) -> impl FnMut(I) -> I {
22+
|i| i
23+
}
24+
25+
fn rule_to_parser<'c>() -> impl Parser<&'c str> {
26+
move |input| {
27+
let v: Vec<()> = vec![];
28+
alt(v.iter().map(|()| owned_context(rule_to_parser())).collect::<DynamicAlt<_>>())(input)
29+
}
30+
}
31+
32+
fn main() {}

0 commit comments

Comments
 (0)