summaryrefslogtreecommitdiff
path: root/src/parse/mod.rs
diff options
context:
space:
mode:
authorLaurenz <laurmaedje@gmail.com>2022-01-31 13:26:40 +0100
committerLaurenz <laurmaedje@gmail.com>2022-01-31 13:26:52 +0100
commit8f37189d6fb2e3c75e4e6a168e1ae17c568fdc4c (patch)
tree36d0201961766fa53d4193f2b91a0a27ac1826ad /src/parse/mod.rs
parentb1a82ae22d819eaa81a5e1d0ece58e6b4717dda5 (diff)
Fix incremental parsing bugs
Diffstat (limited to 'src/parse/mod.rs')
-rw-r--r--src/parse/mod.rs22
1 files changed, 20 insertions, 2 deletions
diff --git a/src/parse/mod.rs b/src/parse/mod.rs
index 1131fec8..f666f4ad 100644
--- a/src/parse/mod.rs
+++ b/src/parse/mod.rs
@@ -68,7 +68,7 @@ pub fn parse_atomic(
) -> Option<(Vec<Green>, bool)> {
let mut p = Parser::with_prefix(prefix, src, TokenMode::Code);
primary(&mut p, true).ok()?;
- p.consume_unterminated()
+ p.consume_open_ended()
}
/// Parse an atomic primary. Returns `Some` if all of the input was consumed.
@@ -80,7 +80,7 @@ pub fn parse_atomic_markup(
) -> Option<(Vec<Green>, bool)> {
let mut p = Parser::with_prefix(prefix, src, TokenMode::Markup);
markup_expr(&mut p);
- p.consume_unterminated()
+ p.consume_open_ended()
}
/// Parse a template literal. Returns `Some` if all of the input was consumed.
@@ -919,3 +919,21 @@ fn comment(p: &mut Parser) -> ParseResult {
_ => Err(ParseError),
}
}
+
+#[cfg(test)]
+mod tests {
+ use std::fmt::Debug;
+
+ #[track_caller]
+ pub fn check<T>(src: &str, found: T, expected: T)
+ where
+ T: Debug + PartialEq,
+ {
+ if found != expected {
+ println!("source: {src:?}");
+ println!("expected: {expected:#?}");
+ println!("found: {found:#?}");
+ panic!("test failed");
+ }
+ }
+}