Repository navigation
Fix ABI 15 array-bound and constructor parsing - #5
Merged
Merged
Conversation
DavidBakerEffendi
marked this pull request as draft
October 9, 2026 17:58
Register the qualified constructor rule in namespace declaration-list items and retain the original file-scope regression. Add nested namespace and ordinary expression controls, exercise both supported Rust runtimes, and prepare 0.24.2 metadata. All 213 corpus cases and 26 highlight assertions pass. Default/all-feature Rust tests and doctests pass on 0.25.10 and 0.26.13; Clippy, Node binding rebuild/test, package verification and repeat ABI15 generation pass. Bifrost downstream qualification is required before publication.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Grammar 0.24.0 could consume declarations following a conditional array bound and parse qualified defaulted constructors as assignments. The 0.24.1 constructor repair covered file scope but missed namespace declaration lists. This prepares 0.24.2 with both contexts restored and the original array repair retained.
Key Changes:
preproc_array_size, retaining following declarations outside the feature guard.Touch Points:
grammar.js, generatedsrc/grammar.json,src/node-types.json,src/parser.ctest/corpus/abi15-regressions.txt,bindings/rust/lib.rsCargo.toml,Cargo.lock,.github/workflows/ci.ymlREADME.md, npm/Python metadata,tree-sitter.jsonLocal validation at
a124af8725cb91e8c609e10f3ce168d1ed5d5fe7: 213 corpus cases and 26 highlight assertions pass. Default/all-feature Rust tests and doctests pass on both runtimes; Node rebuild/test, formatting, Clippy, ESLint, package verification, and byte-identical repeat ABI15 generation pass. Bifrost's exact-runtime probe confirms namespace constructor declaration shape. All eight hosted checks pass at that exact head. The complete Bifrost consumer integration gate passes 1909/1909 on Tree-sitter 0.25.10, with focused C++ and analysis/cache gates passing 273/273 and 270/270.General
#if,#else, and nested directives inside array bounds remain unsupported.The earlier 0.24.1 crate was published from parent
06142457d63e81f0ad423d84536b7dd0f67c38d1by run 37967090595. Version 0.24.2 is published from immutable commita124af8725cb91e8c609e10f3ce168d1ed5d5fe7by run 37974277116. The downloaded crate matches registry checksum9e32dec5d2e7b2cbd64969c6d479ae156271f903e57e8a74b2938484eb6afd85, its VCS source, generated files, grammar, and Rust binding bytes.