fix(hir): preserve class self brand through private updates - #9126
Conversation
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: defaults Review profile: CHILL Plan: Pro Plus Run ID: 📒 Files selected for processing (4)
Included review availability: Your plan provides up to 8 included reviews per hour; 4 remain after this review. 📝 WalkthroughWalkthroughThe change preserves lexical class brand ownership through nested private-field guards. It adds lowering coverage for static private updates in arrows and runtime coverage for named class self-capture, nested arrows, and independent static private state. ChangesNamed class static self-binding
Estimated code review effort: 2 (Simple) | ~10 minutes Merge Risk: ⚪ Minimal · up to This narrowly scoped compiler correctness fix preserves private-field behavior without changing public interfaces or weakening runtime checks; no actionable merge-blocking risk remains. Suggested reviewers: 🚥 Pre-merge checks | ✅ 4 | ❌ 1❌ Failed checks (1 warning)
✅ Passed checks (4 passed)
Full details: Description checkExplanation The description provides a clear summary, identifies issue Full details: Linked Issues checkExplanation The changes address issue Full details: Docstring CoverageExplanation Docstring coverage is 75.00% which is insufficient. The required threshold is 80.00%. Docstring coverage is scoped to functions touched by this diff. Analyzed 4 functions across 3 files. (1 skipped: 1 unsupported.)
✨ Finishing Touches🧪 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 |
7d35eea to
9f294fb
Compare
|
Merged as part of a six-PR merge train: all six were cherry-picked onto one branch and validated together in a single build rather than six separate ones, at the maintainer's request to speed up a backlog. Combined validation: hir 361 passed, codegen 1352, runtime 2822 (exit 0, 0 abort markers), perry --bins 1066, and Behaviour spot-check: my #9104 probe (23 class-self-binding shapes) is unchanged at 2/23 wrong, both of which are the pre-existing |
Summary
Current upstream already resolves the issue's
const C = class Namedshape. This fixes the remaining nested-arrow/private-update failure and keeps both reported shapes gated.Fixes #9104
Test plan
cargo fmt --all -- --checkcargo build --release -p perry -p perry-runtime-static -p perry-stdlib-staticcargo test --release -p perry-hir --lib(361 passed, 1 ignored)PERRY_SKIP_BUILD=1 ./run_parity_tests.sh --filter 9104(1/1 passed)PERRY_SKIP_BUILD=1 ./run_parity_tests.sh --filter class_expr(19/19 passed)python3 scripts/check_test_registration.py./scripts/pre-tag-check.sh --quickChecklist
CLAUDE.md/CHANGELOG.mdeditchangelog.dfragmentSummary by CodeRabbit
Bug Fixes
Tests