lakshitbahl opened a new pull request, #39210:
URL: https://github.com/apache/beam/pull/39210
###Description:
This PR resolves closure-related type inference regressions (see #28420) and
restores compatibility with Python 3.11+ opcode changes. It introduces two
distinct fixes under a unified closure-handling improvement, allowing us to
un-skip testLocalClosure.
1. Type-vs-Value Cell Confusion
Prevents the inference engine from confusing synthetic inferred types with
real runtime closure values. Introduces the _TypeInCell marker class to safely
wrap, track, and unwrap inferred types within the frame emulation, ensuring
strict isolation from actual Python cell contents.
2. Python 3.11+ Shared-Slot Indexing
Fixes LOAD_CLOSURE and LOAD_DEREF indexing for Python 3.11 and newer.
Replaces the legacy arg -= len(co_varnames) arithmetic—which broke when
captured parameters shared a slot in the new unified localsplus array—with
version-aware slot-name resolution. This correctly maps variables and prevents
out-of-bounds IndexError exceptions that were previously being swallowed by the
safe-mode execution and degraded to Any.
------------------------
Thank you for your contribution! Follow this checklist to help us
incorporate your contribution quickly and easily:
- [ ] Mention the appropriate issue in your description (for example:
`addresses #123`), if applicable. This will automatically add a link to the
pull request in the issue. If you would like the issue to automatically close
on merging the pull request, comment `fixes #<ISSUE NUMBER>` instead.
- [ ] Update `CHANGES.md` with noteworthy changes.
- [ ] If this contribution is large, please file an Apache [Individual
Contributor License Agreement](https://www.apache.org/licenses/icla.pdf).
See the [Contributor Guide](https://beam.apache.org/contribute) for more
tips on [how to make review process
smoother](https://github.com/apache/beam/blob/master/CONTRIBUTING.md#make-the-reviewers-job-easier).
To check the build health, please visit
[https://github.com/apache/beam/blob/master/.test-infra/BUILD_STATUS.md](https://github.com/apache/beam/blob/master/.test-infra/BUILD_STATUS.md)
GitHub Actions Tests Status (on master branch)
------------------------------------------------------------------------------------------------
[](https://github.com/apache/beam/actions?query=workflow%3A%22Build+python+source+distribution+and+wheels%22+branch%3Amaster+event%3Aschedule)
[](https://github.com/apache/beam/actions?query=workflow%3A%22Python+Tests%22+branch%3Amaster+event%3Aschedule)
[](https://github.com/apache/beam/actions?query=workflow%3A%22Java+Tests%22+branch%3Amaster+event%3Aschedule)
[](https://github.com/apache/beam/actions?query=workflow%3A%22Go+tests%22+branch%3Amaster+event%3Aschedule)
See [CI.md](https://github.com/apache/beam/blob/master/CI.md) for more
information about GitHub Actions CI or the [workflows
README](https://github.com/apache/beam/blob/master/.github/workflows/README.md)
to see a list of phrases to trigger workflows.
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]