diff --git a/src/to_mdast.rs b/src/to_mdast.rs index b202649..99a0c2a 100644 --- a/src/to_mdast.rs +++ b/src/to_mdast.rs @@ -1743,12 +1743,13 @@ fn on_mismatch_error( right: &Event, ) -> Result<(), String> { if right.name == Name::MdxJsxFlowTag || right.name == Name::MdxJsxTextTag { + let stack = &context.jsx_tag_stack; + let tag = stack.last().unwrap(); let point = if let Some(left) = left { &left.point } else { &context.events[context.events.len() - 1].point }; - let tag = context.jsx_tag.as_ref().unwrap(); return Err(format!( "{}:{}: Expected a closing tag for `{}` ({}:{}){} (mdx-jsx:end-tag-mismatch)", diff --git a/tests/mdx_jsx_text.rs b/tests/mdx_jsx_text.rs index d0d1972..afd259c 100644 --- a/tests/mdx_jsx_text.rs +++ b/tests/mdx_jsx_text.rs @@ -483,6 +483,12 @@ fn mdx_jsx_text_core() -> Result<(), String> { "should crash when building the ast on mismatched interleaving (4)" ); + assert_eq!( + to_mdast("", &mdx.parse).err().unwrap(), + "1:11: Expected a closing tag for `` (1:1) (mdx-jsx:end-tag-mismatch)", + "should crash on unclosed jsx after closed jsx" + ); + Ok(()) }