rust/src/librustc/mir
bors 881a7cd86e Auto merge of #49836 - nikomatsakis:nll-facts-prep, r=pnkfelix
prep work for using timely dataflow with NLL

Two major changes:

**Two-phase borrows are overhauled.** We no longer have two bits per borrow. Instead, we track -- for each borrow -- an (optional) "activation point". Then, for each point P where the borrow is in scope, we check where P falls relative to the activation point. If P is between the reservation point and the activation point, then this is the "reservation" phase of the borrow, else the borrow is considered active. This is simpler and means that the dataflow doesn't have to care about 2-phase at all, at last not yet.

**We no longer support using the MIR borrow checker without NLL.** It is going to be increasingly untenable to support lexical mode as we go forward, I think, and also of increasingly little value. This also exposed a few bugs in NLL mode due to increased testing.

r? @pnkfelix
cc @bobtwinkles
2018-04-17 14:23:57 +00:00
..
interpret Auto merge of #49947 - oli-obk:turing_complete_const_eval, r=nagisa 2018-04-15 21:18:37 +00:00
cache.rs Make Mir::predecessors thread-safe 2018-03-28 01:28:00 +02:00
mod.rs determine whether a borrow is active based solely on the location 2018-04-15 07:06:29 -04:00
mono.rs Add InterpretInterner to StableHashingContext for AllocId serialization 2018-03-08 08:34:08 +01:00
tcx.rs remove defaulting to unit 2018-03-14 12:44:51 +08:00
traversal.rs Implement some trivial size_hints for various iterators 2018-03-20 05:33:59 -04:00
visit.rs UserAssertTy can handle inference variables. 2018-03-22 21:11:02 +00:00