-
Notifications
You must be signed in to change notification settings - Fork 12.7k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
MIR borrow check (under debug flag) #43108
Commits on Aug 16, 2017
-
Move borrowck error msg construction to module in
rustc_mir
(for la……ter reuse by mir borrowck). post-rebase: Do not put "(Ast)" suffix in error msg unless passed `-Z borrowck-mir`. (But unconditionally include "(Mir)" suffix for mir-borrowck errors.)
Configuration menu - View commit details
-
Copy full SHA for 8e79fc7 - Browse repository at this point
Copy the full SHA 8e79fc7View commit details -
Refactor
trait BitDenotation
to takeLocation
instead of `BasicBl……ock`/`usize` argument pairs.
Configuration menu - View commit details
-
Copy full SHA for cff060b - Browse repository at this point
Copy the full SHA cff060bView commit details -
Added dataflow analysis for
Borrows
.post-rebase: addressed review comment: rename `loc_map`/`location_map` and `rgn_map`/`region_map`. post-rebase: remove now unnecessary `mut` decl. post-rebase: address comments: bind iterator expr, and alpha-rename `loc`/`location` and `idx`/`index`.
Configuration menu - View commit details
-
Copy full SHA for 9f6ef66 - Browse repository at this point
Copy the full SHA 9f6ef66View commit details -
Migrated some code out of
dataflow::drop_flag_effects
and into its ……parent module. (This code is more general purpose than just supporting drop flag elaboration.)
Configuration menu - View commit details
-
Copy full SHA for e8ebc90 - Browse repository at this point
Copy the full SHA e8ebc90View commit details -
Configuration menu - View commit details
-
Copy full SHA for 3ef1afc - Browse repository at this point
Copy the full SHA 3ef1afcView commit details -
Move
DataFlowState::{each_bit,interpret_set}
method definitions to ……parent module. Refactored `each_bit`, which traverses a `IdxSet`, so that the bulk of its implementation lives in `rustc_data_structures`.
Configuration menu - View commit details
-
Copy full SHA for 9b8b8c6 - Browse repository at this point
Copy the full SHA 9b8b8c6View commit details -
Configuration menu - View commit details
-
Copy full SHA for 869f05a - Browse repository at this point
Copy the full SHA 869f05aView commit details -
MIR based borrow check (opt-in).
One can either use `-Z borrowck-mir` or add the `#[rustc_mir_borrowck]` attribute to opt into MIR based borrow checking. Note that regardless of whether one opts in or not, AST-based borrow check will still run as well. The errors emitted from AST-based borrow check will include a "(Ast)" suffix in their error message, while the errors emitted from MIR-based borrow check will include a "(Mir)" suffix. post-rebase: removed check for intra-statement mutual conflict; replaced with assertion checking that at most one borrow is generated per statement. post-rebase: removed dead code: `IdxSet::pairs` and supporting stuff.
Configuration menu - View commit details
-
Copy full SHA for 018784a - Browse repository at this point
Copy the full SHA 018784aView commit details -
Configuration menu - View commit details
-
Copy full SHA for 15c411d - Browse repository at this point
Copy the full SHA 15c411dView commit details -
Cleanup: Every
BitDenotation
is aDataflowOperator
, so build that…… in. Post-rebase: ariel confirmed `SetDiscriminant` should indeed be a mutate.
Configuration menu - View commit details
-
Copy full SHA for b6528f0 - Browse repository at this point
Copy the full SHA b6528f0View commit details -
Address review comment:
StatementKind::StorageDead
has an effect (r……unning dtors) relevant to borrowck.
Configuration menu - View commit details
-
Copy full SHA for 6d6280e - Browse repository at this point
Copy the full SHA 6d6280eView commit details -
Moved mir-borrowck pass down to where comments say it should be.
Added two fixmes: The `SimplifyBranches` pass cannot stay where it is, and `BorrowckMir` should be a query, not a pass. But I am going to leave those changes to a future PR.
Configuration menu - View commit details
-
Copy full SHA for 8738a08 - Browse repository at this point
Copy the full SHA 8738a08View commit details