Latest Results
fix(markdown): remove dead syntax kinds and fix bogus node handling
Follow-up to #10593, which removed the unused hard_line slot. A sweep of
the markdown grammar and kinds list found more elements the parser never
produces, plus an unsound recovery path:
- Remove MdSoftBreak and MdIndent from the grammar. The parser never
emits them (soft breaks are stored as MD_TEXTUAL newline tokens), so
the nodes, their literal tokens, and their formatter handlers were
dead code.
- Remove stale kinds with no grammar node and no parser references:
MD_STRING(_LITERAL), MD_ERROR_LITERAL, MD_INDENTED_CODE_LINE(_LIST),
MD_INLINE_IMAGE_ALT/_LINK/_SOURCE.
- Declare MdBogusBullet in the grammar. List recovery completes
MD_BOGUS_BULLET nodes (syntax/list.rs), but the kind had no factory
arm, so a recovered bullet would hit unreachable!() in
MarkdownSyntaxFactory::make_syntax and crash.
- Make is_bogus() cover all three bogus kinds and map to_bogus() to the
context-appropriate bogus kind, matching the CSS/JSON implementations.
No CST shape changes: the removed elements never appeared in any
snapshot, and a 48k-case differential fuzz run produces byte-identical
results before and after.jfmcdowell:fix/md-grammar-kinds-cleanup fix(markdown): remove dead syntax kinds and fix bogus node handling
Follow-up to #10593, which removed the unused hard_line slot. A sweep of
the markdown grammar and kinds list found more elements the parser never
produces, plus an unsound recovery path:
- Remove MdSoftBreak and MdIndent from the grammar. The parser never
emits them (soft breaks are stored as MD_TEXTUAL newline tokens), so
the nodes, their literal tokens, and their formatter handlers were
dead code.
- Remove stale kinds with no grammar node and no parser references:
MD_STRING(_LITERAL), MD_ERROR_LITERAL, MD_INDENTED_CODE_LINE(_LIST),
MD_INLINE_IMAGE_ALT/_LINK/_SOURCE.
- Declare MdBogusBullet in the grammar. List recovery completes
MD_BOGUS_BULLET nodes (syntax/list.rs), but the kind had no factory
arm, so a recovered bullet would hit unreachable!() in
MarkdownSyntaxFactory::make_syntax and crash.
- Make is_bogus() cover all three bogus kinds and map to_bogus() to the
context-appropriate bogus kind, matching the CSS/JSON implementations.
No CST shape changes: the removed elements never appeared in any
snapshot, and a 48k-case differential fuzz run produces byte-identical
results before and after.jfmcdowell:fix/md-grammar-kinds-cleanup fix(markdown): remove dead syntax kinds and fix bogus node handling
Follow-up to #10593, which removed the unused hard_line slot. A sweep of
the markdown grammar and kinds list found more elements the parser never
produces, plus an unsound recovery path:
- Remove MdSoftBreak and MdIndent from the grammar. The parser never
emits them (soft breaks are stored as MD_TEXTUAL newline tokens), so
the nodes, their literal tokens, and their formatter handlers were
dead code.
- Remove stale kinds with no grammar node and no parser references:
MD_STRING(_LITERAL), MD_ERROR_LITERAL, MD_INDENTED_CODE_LINE(_LIST),
MD_INLINE_IMAGE_ALT/_LINK/_SOURCE.
- Declare MdBogusBullet in the grammar. List recovery completes
MD_BOGUS_BULLET nodes (syntax/list.rs), but the kind had no factory
arm, so a recovered bullet would hit unreachable!() in
MarkdownSyntaxFactory::make_syntax and crash.
- Make is_bogus() cover all three bogus kinds and map to_bogus() to the
context-appropriate bogus kind, matching the CSS/JSON implementations.
No CST shape changes: the removed elements never appeared in any
snapshot, and a 48k-case differential fuzz run produces byte-identical
results before and after.jfmcdowell:fix/md-grammar-kinds-cleanup fix(markdown): remove dead syntax kinds and fix bogus node handling
Follow-up to #10593, which removed the unused hard_line slot. A sweep of
the markdown grammar and kinds list found more elements the parser never
produces, plus an unsound recovery path:
- Remove MdSoftBreak and MdIndent from the grammar. The parser never
emits them (soft breaks are stored as MD_TEXTUAL newline tokens), so
the nodes, their literal tokens, and their formatter handlers were
dead code.
- Remove stale kinds with no grammar node and no parser references:
MD_STRING(_LITERAL), MD_ERROR_LITERAL, MD_INDENTED_CODE_LINE(_LIST),
MD_INLINE_IMAGE_ALT/_LINK/_SOURCE.
- Declare MdBogusBullet in the grammar. List recovery completes
MD_BOGUS_BULLET nodes (syntax/list.rs), but the kind had no factory
arm, so a recovered bullet would hit unreachable!() in
MarkdownSyntaxFactory::make_syntax and crash.
- Make is_bogus() cover all three bogus kinds and map to_bogus() to the
context-appropriate bogus kind, matching the CSS/JSON implementations.
No CST shape changes: the removed elements never appeared in any
snapshot, and a 48k-case differential fuzz run produces byte-identical
results before and after.jfmcdowell:fix/md-grammar-kinds-cleanup Latest Branches
0%
jfmcdowell:fix/md-linkref-quote-list 0%
jfmcdowell:fix/md-grammar-kinds-cleanup 0%
IxxyDev:js-type-info/select-function-overload © 2026 CodSpeed Technology