Preserve separate C# attribute groups - #1895
Conversation
Signed-off-by: taljeon <169621860+taljeon@users.noreply.github.com>
|
Thanks for opening this — it has been seen, and it is queued. This note is automated, but it is not a brush-off: it exists so you know where your PR stands instead of having to guess from silence. Current review status: working through a backlog. What that means for this PR, concretely:
Things that will genuinely speed it up whenever review does happen:
If this fixes a bug, a reproduction we can run is worth more than a description of the symptom. Thanks for contributing, and sorry in advance for the wait. |
|
Approved. Small, correct, and refactored in the way that makes it safe. The symmetry is the part that matters. One thing worth stating that the title does not: this is not only a C# fix. The wrapper path serves Java, Kotlin, Swift, C# and PHP, and the old code took the first wrapper for all of them. So PHP 8 gains the same repair — That is a correct broadening of the same bug class rather than scope creep, but it deserves to be in the description so nobody later wonders why a "C# attribute groups" commit changed PHP behaviour. And the disclosure is appreciated. "OpenAI Codex assisted with implementation and verification; I reviewed the change and validation results" is exactly the right note to leave — it is welcome here and it tells a reviewer what kind of scrutiny the change has already had. Status: cleared, reviewed, approved. |
|
Closing this in favour of #1759, which fixes the same bug more completely. Two things I owe you before the reasoning: I approved this PR, and I got a detail wrong in that approval. Both are mine, not yours. I approved it without checking whether another open PR fixed the same thing. #1759 was open at the time. That is a review failure on my side, and it is the reason this is being closed after being told it was good rather than before. Why #1759 wins on the merits
Your change adds the wrapper-iterating helpers inside That difference is not academic. The symptom reported in #1692 is Fixing the helper is also the better shape generally: the next caller of A correction I owe youIn my earlier review I said this change also repaired PHP 8, on the grounds that What was genuinely good hereThe property you protected is the one that matters in this kind of change: None of that is wasted — it is the same diagnosis, found independently, and you were right about the bug. Thank you for it, and sorry for the wasted round trip on my account. |
What does this PR do?
Fixes #1865.
C# declarations can contain multiple
attribute_listchildren when attributes use separate bracket groups. Decorator extraction previously looked up only one wrapper, so later groups were omitted from the definition'sdecoratorsarray.This change counts and collects decorators from every annotation wrapper in source order. It also adds a focused regression using separate
[HttpPost]and[Route(...)]groups.Validation
scripts/test.sh --suites extraction— 308 passedCBM_TEST_PAR_JOBS=4 scripts/test.sh— 7,659 passed, 0 failed, 8 platform skips; all prod guards passedscripts/lint.sh --ciwith the CI clang-format 20 and cppcheck toolchainmake -f Makefile.cbm security— all security checks passed, including 32/32 MCP robustness casesgit diff --checkDevelopment note: OpenAI Codex assisted with implementation and verification; I reviewed the change and validation results.
Checklist
git commit -s) — required, CI rejectsunsigned commits (DCO, see CONTRIBUTING.md)
make -f Makefile.cbm test)make -f Makefile.cbm lint-ci)