fix: restore three lint gates that went red during the merge batch - #9322
Merged
Conversation
The census update tracks #9317's funnel refactor without weakening the invariant; the mysql2 test change removes real cross-allocation exposure rather than raising the ceiling.
|
Caution Review failedThe pull request is closed. ℹ️ Recent review info⚙️ Run configurationConfiguration used: defaults Review profile: CHILL Plan: Team Run ID: 📒 Files selected for processing (4)
📝 WalkthroughWalkthroughThe PR updates shape-descriptor census assertions, restructures MySQL extension tests to avoid unrooted locals, removes an unused import, and records these lint-gate fixes. ChangesLint gate alignment
Estimated code review effort: 2 (Simple) | ~10 minutes ✨ Finishing Touches📝 Generate docstrings
🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
This was referenced Sep 1, 2026
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.
Three
lintsteps went red onmainduring today's merge batch. I found them by running the fullscripts/run_lint_gates.shrather than the gates I'd been picking by hand — it reported 57 ok with 3 failures; this takes it to 60 ok, exit 0.shape_descriptor_census.py— stale, not a real violation. The census asserts the shape descriptor is published before theObjectHeaderShapeId, and located that write by its literal spelling(*obj).parent_class_id = id. #9317 correctly routed every post-birth publication throughstamp_object_shape_id_with_carrier_note, so the inline write no longer exists and the assertion could not find it. The invariant itself is intact — inpublish_object_shape_from,shape_descriptor_ensure_with_holesis still at line 83 and the stamp at line 91. The assertion and the census's own inversion self-test now name the funnel.I verified the updated gate can still fail: planting an inverted ordering (stamp before descriptor-ensure) in
shapes.rsmakes it exit 1 with the sameCensusError, and restoring it returns to green. It isn't a gate that only agrees with itself.Unused
Pathimport instrided_tagged_fill.rsfrom #9316.cargo check --workspace --all-targets -D warningsrejects it; a plaincargo buildnever sees it because it does not compile test targets — which is exactly how it got past me.unrooted_local_shape.pyper-file ceiling forperry-ext-mysql2, from #9319's two new tests. This one was a real exposure, not a checker artifact: the tests allocated eight heap values up front and then pushed them one at a time, so every earlier value was live across ajs_array_pushthat can move it — the #8217 shape the instrument exists to find. Each value is now built inside the iteration that pushes it, and the array is consumed in the expression that builds it.No baseline was touched. The file returns to its recorded ceiling of 9 and the repository total drops 576 → 567. Raising the ceiling would have been rejected anyway —
--no-raise-vsrefuses a per-file raise even when the total falls, which is the same anti-gaming guard #9297 is currently blocked on.Both mysql2 tests still pass, and
perry-ext-mysql2compiles clean under--all-targets.Summary by CodeRabbit
Bug Fixes
Documentation