]> git.lizzy.rs Git - rust.git/commit - src/tools/rustfmt
Auto merge of #79553 - sexxi-goose:mir_min_cap_writeback, r=nikomatsakis
authorbors <bors@rust-lang.org>
Sat, 12 Dec 2020 00:23:29 +0000 (00:23 +0000)
committerbors <bors@rust-lang.org>
Sat, 12 Dec 2020 00:23:29 +0000 (00:23 +0000)
commit5bd9b60333b3dc0a51e7a5607cd1e0d537a9f718
treec71a54390ab3616674b9825a03b61a3cd9d2a109
parent9eb3a7ceafd1e2c1924177caa18c7cc0c25b413e
parent01df56343bf1884d5e1d82e813e2930c6d9d5dd6
Auto merge of #79553 - sexxi-goose:mir_min_cap_writeback, r=nikomatsakis

Capture precise paths in THIR and MIR

This PR allows THIR and MIR to use the result of the new capture analysis to actually capture precise paths

To achieve we:
- Writeback min capture results to TypeckResults
- Move handling upvars to PlaceBuilder in mir_build
- Lower precise paths in THIR build by reading min_captures
- Search for ancestors in min_capture when trying to build a MIR place which starts off of an upvar

Closes: https://github.com/rust-lang/project-rfc-2229/issues/10
Partly implements: rust-lang/project-rfc-2229#18

Work that remains (not in this PR):
- [ ] [Known bugs when feature gate is enabled](https://github.com/rust-lang/project-rfc-2229/projects/1?card_filter_query=label%3Abug)
- [ ] Use min_capure_map for
  - [ ] Liveness analysis
  - [ ] rustc_mir/interpret/validity.rs
  - [ ] regionck
- [ ] rust-lang/project-rfc-2229#8
- [ ] remove closure_captures and upvar_capture_map

r? `@ghost`
compiler/rustc_middle/src/ty/mod.rs
compiler/rustc_mir_build/src/build/expr/as_rvalue.rs
compiler/rustc_mir_build/src/thir/cx/expr.rs
compiler/rustc_typeck/src/expr_use_visitor.rs