diff --git a/src/combinator/multi.rs b/src/combinator/multi.rs index 14c0fd32..28d90c3d 100644 --- a/src/combinator/multi.rs +++ b/src/combinator/multi.rs @@ -1397,9 +1397,9 @@ where E: ParserError, { let init = init(); + let start = input.checkpoint(); match f.parse_next(input) { - Err(ErrMode::Backtrack(_)) => Err(ErrMode::from_error_kind(input, ErrorKind::Repeat)), - Err(e) => Err(e), + Err(e) => Err(e.append(input, &start, ErrorKind::Repeat)), Ok(o1) => { let mut acc = g(init, o1); diff --git a/src/combinator/tests.rs b/src/combinator/tests.rs index f955c96b..f9bc3368 100644 --- a/src/combinator/tests.rs +++ b/src/combinator/tests.rs @@ -3712,7 +3712,7 @@ Err( ], partial: true, }, - kind: Repeat, + kind: Literal, }, ), )