Follow-up from the second review of #92. The review had low confidence here and did not reproduce a failure, so this is a test-coverage gap.
In MarkdownRendering.kt, a span nested in the same span opens a transparent Inline("") frame. firstOpaqueFrame counts that frame as a label-local Inline, and its close never re-checks whether the outer span was merged (pendingInlineClose) or held. Nothing tests two-level nesting combined with an adjacent merge.
Case to pin
<strong>x</strong><strong>y<strong>z</strong></strong>: the merge restores the outer frame and the inner span becomes transparent. The expected output is **xyz**, and it should be a render→parse→render fixpoint. Add a MarkdownRenderingTest case and an EmphasisDelimiterRoundTripTest case so a later change to the merge or nesting logic can't produce unbalanced delimiters unnoticed.
Follow-up from the second review of #92. The review had low confidence here and did not reproduce a failure, so this is a test-coverage gap.
In
MarkdownRendering.kt, a span nested in the same span opens a transparentInline("")frame.firstOpaqueFramecounts that frame as a label-localInline, and its close never re-checks whether the outer span was merged (pendingInlineClose) or held. Nothing tests two-level nesting combined with an adjacent merge.Case to pin
<strong>x</strong><strong>y<strong>z</strong></strong>: the merge restores the outer frame and the inner span becomes transparent. The expected output is**xyz**, and it should be a render→parse→render fixpoint. Add aMarkdownRenderingTestcase and anEmphasisDelimiterRoundTripTestcase so a later change to the merge or nesting logic can't produce unbalanced delimiters unnoticed.