Track drop points by MIR Place#154
Closed
coord-e wants to merge 1 commit into
Closed
Conversation
Owner
Author
|
Superseded by #155, which builds on this branch's Generated by Claude Code |
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.
Motivation
Placeso implicit drops are tracked at the correct place granularity.Description
DropPointsto storemir::Place<'tcx>inbefore_statements,after_statements,after_terminator, andafter_terminator_extra, and makeDropPointsgeneric over the MIR lifetime.Localsets intomir::Place<'tcx>inDropPointsBuilder::buildand adapt APIs to insert/remove/query places.Analyzerto useDropPoints<'tcx>, adddrop_place/drop_after_terminatoroperations, and route all implicit-drop handling to work withmir::Place<'tcx>across statements and terminators.drop_placeto the refinementEnvand makedrop_localdelegate to it, and updatelocal_defandRustCallVisitorto produce/consume places (including restoring closure environment-drop obligations at the precise place).Testing
cargo check, which completed successfully.cargo fmtandgit diff --check, which reported no issues.cargo test(UI test suite), which failed due to environment limitations (missing external verifier/solver anddockerusage in wrappers), causing many UI tests to fail; failures are due to the test environment, not obviously due to this change.Codex Task