Repository navigation
fix(compiler): enforce hide and seal on destructuring - #3448
adilalperenciftci wants to merge 1 commit into
Conversation
There was a problem hiding this comment.
Copilot was unable to review this pull request because the user who requested the review has insufficient remaining quota.
An organization owner can choose the repository organization as the billing source for reviews requested by members with a paid Copilot license. Learn about Copilot code review billing.
Signed-off-by: Adil Alperen Çiftci <adilalperenciftci@users.noreply.github.com>
3b243ea to
6171f7c
Compare
|
Rebased onto current main at Ubuntu VM verification:
Updated head: |
|
Thanks @adilalperenciftci! This landed in #3474, which batched nine of your PRs and merged on 2026-10-30 ( |
Summary
I traced a lexical-containment gap to tuple slot binding. Plain reads and assignments honored
hideandseal except, butname, _ = tuple()looked up outer bindings directly and could re-bind a name excluded by the current scope.This change checks each named destructure slot before re-binding it. An outer name blocked by
hideorseal exceptis rejected, while a visible local below the directive and a genuinely new local inside a sealed block retain their existing behavior.Verification
sh tests/integration/hide_seal_directives/test_hide_reject.sh(18 passed)make check-changelogmake check-testsmake test(634 passed)Signed-off-by: Adil Alperen Çiftci adilalperenciftci@users.noreply.github.com