diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/lib.rs | 19 |
1 files changed, 18 insertions, 1 deletions
@@ -262,7 +262,10 @@ where }; let rest = match self.delimiter.check(rest.clone()) { - Ok((rest, _)) => rest, + Ok((rest, _)) => match self.parser.check(rest.clone()) { + Ok(_) => rest, + Err(_) => return Some(Err(EM::bind(|| rest))), + }, _ => rest, }; @@ -1030,6 +1033,20 @@ mod test { } #[test] + fn test_separated_list_with_trailing_delimiter() { + let input = "1.0."; + let it = InputIter::new(input); + + assert!( + numeric1() + .separated_by(tag(".")) + .at_least(1) + .check_finished(it) + .is_err() + ); + } + + #[test] fn test_find() { let input = "hello world"; let it = InputIter::new(input); |
