diff options
| author | bors <bors@rust-lang.org> | 2017-08-16 15:36:00 +0000 |
|---|---|---|
| committer | bors <bors@rust-lang.org> | 2017-08-16 15:36:00 +0000 |
| commit | 00a6797f05607ed0d29d25378fb502a8a9b0a6bf (patch) | |
| tree | fb72a17788ccd39c24a6b6545eb7988e458c6d01 /src/libstd/sys/unix/process/process_unix.rs | |
| parent | c88624682ddb5768cca4dacc8482e9bc966261fc (diff) | |
| parent | 8738a087ffc25f621237ca944538ef0f9b476fbc (diff) | |
| download | rust-00a6797f05607ed0d29d25378fb502a8a9b0a6bf.tar.gz rust-00a6797f05607ed0d29d25378fb502a8a9b0a6bf.zip | |
Auto merge of #43108 - pnkfelix:mir-borrowck3c, r=arielb1
MIR borrow check (under debug flag) Here is the current state of MIR borrow check. It consists of (1.) some refactoring, (2.) a dataflow analysis to identify the borrows themselves, and (3.) a mir "transform" that does the borrow check itself based on the aforementioned dataflow results. (There's also a drive-by fix to dataflow that I can factor into a separate PR if necessary. Interestingly I could not find a way to observe the bug outside of MIR borrowck.) To be clear, this branch is not ready to be used as the default borrow check. Thus the code is guarded: To get mir-borrowck to run, you need to either supply an attribute `#[rustc_mir_borrowck]` or a debug flag `-Z borrowck-mir`. Here are the main issues with the current MIR borrowck as it stands in this PR: * No Notes emitted yet, just errors. (So the feedback is definitely inferior compared to AST borrowck today) * Lvalue rendering differs between Ast and Mir. (Mostly minor, but replacement of field names with indices is very bad; big priority for me to fix ASAP.) * Lots of ICEs (presumably because some MIR operations used here have well-formedness assumptions that are violated in borrowck-broken code) * Conflates lots of cases that are distinguished by AST-borrowck * Conflates "uninitialized" with "moved" (special case of previous bullet, one that I think should be fixed ASAP) (I am hoping to fix as many of the above issues as I can in the near term, but I also would like to land this even if they are *not* all fixed, because the rebasing effort is getting to be a real drag.)
Diffstat (limited to 'src/libstd/sys/unix/process/process_unix.rs')
0 files changed, 0 insertions, 0 deletions
