fix(compile): omit erased names from module namespaces - #8994
Conversation
|
Warning Review limit reachedNext included review available in 27 minutes. View limit detailsLimit details: You’ve used all 8 included reviews currently available. You've used all free OSS reviews for now. Wait for the free limit to reset to keep reviewing this public repository. Review configuration: ⚙️ Run configurationConfiguration used: defaults Review profile: CHILL Plan: Pro Plus Run ID: 📒 Files selected for processing (1)
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 (5)
Included review availability: Your plan provides up to 8 included reviews per hour; 1 remains after this review. 📝 WalkthroughWalkthroughThe compiler now excludes type-only declarations and private backing names from runtime exports and namespace entries. New regression fixtures verify aliased values, nested namespaces, enumerable properties, and erased declarations. ChangesNamespace type erasure
Estimated code review effort: 3 (Moderate) | ~20 minutes Merge Risk: ⚪ Minimal · up to Compiled module namespaces will omit private backing names and erased TypeScript declarations while preserving runtime exports and aliases. No actionable merge-blocking risk remains beyond normal checks and review. 🚥 Pre-merge checks | ✅ 4 | ❌ 1❌ Failed checks (1 warning)
✅ Passed checks (4 passed)
Full details: Description checkExplanation The description explains the changes, identifies issue ✨ 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 |
|
Merged, validated as a batch of six on current Validation — runtime 2786/0, parser 40/0, codegen 1341/0 ( One fix pushed: this PR touches |
Summary
_nulldo not leak beside their public aliasesimport * as z; export { z }, nestedexport * as coerce, reflection, alias-only exports, and type erasureVerification
On
root@perrymaster.skelpo.net:cargo fmt --all -- --checkcargo build --release -p perrycargo build --release -p perry-runtime-static -p perry-stdlib-static./run_parity_tests.sh --filter namespace_type_erasure_8904./run_parity_tests.sh --filter export_star_as_namespace_object./run_parity_tests.sh --filter namespace_import_enumerableObject.keys(z).length === 236in both Node and Perry,z.coerceis owned/enumerable, andz.coerce.number()("42") === 42No version bump.
Fixes #8904
Summary by CodeRabbit
Bug Fixes
Tests