Skip to content

Fix conditional linkage overload guards for 0.24.3 - #6

Merged
DavidBakerEffendi merged 4 commits into
masterfrom
dave/cpp-abi15-parser-regressions
Oct 13, 2026
Merged

DavidBakerEffendi merged 4 commits into
masterfrom
dave/cpp-abi15-parser-regressions

Conversation

@DavidBakerEffendi

Copy link
Copy Markdown

Split language-linkage headers can close extern "C" and declare C++ overloads in the same conditional. The old grammar inserted a missing #endif, moving those overloads outside their guard and causing C callers to select them. This change retains the conditional ancestry and prepares grammar 0.24.3.

Key Changes:

  • Parse trailing declarations and else/elif alternatives under ordinary conditional nodes while retaining the existing standalone linkage markers.
  • Add realistic overload, nested-guard and empty-branch regressions; regenerate the ABI 15 parser and align release metadata.

Touch Points:

  • grammar.js, src/grammar.json, src/parser.c
  • bindings/rust/lib.rs, test/corpus/c/conditional-linkage-overloads.txt
  • Cargo, npm, Python and Tree-sitter metadata; README.md

Validation: 215 corpus cases and 26 highlight assertions; 7 Rust tests plus doctest on Tree-sitter 0.26.13 and minimum 0.25.10, default and all features; Node binding test; ESLint; Rust formatting; whitespace; verified Cargo package. Latest upstream c009222808634c1014f82438d4883753516a2c24 is already incorporated. Bifrost integration reproduces the incorrect C-to-C++ lookup with published 0.24.2; integration with this release is being verified separately.

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.
@DavidBakerEffendi
DavidBakerEffendi merged commit 114581b into master Oct 13, 2026
8 checks passed
@DavidBakerEffendi
DavidBakerEffendi deleted the dave/cpp-abi15-parser-regressions branch October 13, 2026 13:22
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant