rust/src/librustc_mir/transform
bors 785643a5eb Auto merge of #45668 - nikomatsakis:nll-free-region, r=arielb1
extend NLL with preliminary support for free regions on functions

This PR extends https://github.com/rust-lang/rust/pull/45538 with support for free regions. This is pretty preliminary and will no doubt want to change in various ways, particularly as we add support for closures, but it's enough to get the basic idea in place:

- We now create specific regions to represent each named lifetime declared on the function.
- Region values can contain references to these regions (represented for now as a `BTreeSet<RegionIndex>`).
- If we wind up trying to infer that `'a: 'b` must hold, but no such relationship was declared, we report an error.

It also does a number of drive-by refactorings.

r? @arielb1

cc @spastorino
2017-11-06 23:30:57 +00:00
..
nll trace span info for constraints and report errors 2017-11-02 10:34:25 -04:00
add_call_guards.rs use field init shorthand EVERYWHERE 2017-08-15 15:29:17 -07:00
add_validation.rs rustc: rename CodeExtent to Scope and RegionMaps to ScopeTree. 2017-09-01 23:27:48 +03:00
check_unsafety.rs add TerminatorKind::FalseEdges and use it in matches 2017-11-02 09:43:36 +03:00
clean_end_regions.rs rename Lookup to TyContext and pass more info when visiting tys 2017-11-02 04:40:49 -04:00
copy_prop.rs rustc_mir: implement visit_local instead/along visit_lvalue where possible. 2017-09-03 19:14:31 +03:00
deaggregator.rs box large variants in MIR 2017-05-12 01:43:04 +03:00
dump_mir.rs Expand mir dump in order to handle NLL pass 2017-10-04 23:45:09 -04:00
elaborate_drops.rs make the dataflow / mir-borrowck types carry a 'tcx lifetime 2017-10-31 12:41:40 -04:00
erase_regions.rs rename Lookup to TyContext and pass more info when visiting tys 2017-11-02 04:40:49 -04:00
generator.rs extend liveness to distinguish "drop" and "non-drop" uses 2017-10-31 12:41:38 -04:00
inline.rs add TerminatorKind::FalseEdges and use it in matches 2017-11-02 09:43:36 +03:00
instcombine.rs use field init shorthand EVERYWHERE 2017-08-15 15:29:17 -07:00
mod.rs incr.comp.: Re-execute queries during red/green marking in order to find out their color. 2017-10-02 15:38:57 +02:00
no_landing_pads.rs add TerminatorKind::FalseEdges and use it in matches 2017-11-02 09:43:36 +03:00
promote_consts.rs add lint levels to VisibilityScope 2017-09-24 12:46:00 +03:00
qualify_consts.rs add TerminatorKind::FalseEdges and use it in matches 2017-11-02 09:43:36 +03:00
rustc_peek.rs mir-borrowck: Gather move errors during MoveData construction and report them. 2017-10-04 12:48:20 +02:00
simplify_branches.rs add TerminatorKind::FalseEdges and use it in matches 2017-11-02 09:43:36 +03:00
simplify.rs rustc_mir: use Local instead of Lvalue in Storage{Live,Dead}. 2017-09-04 08:01:46 +03:00
type_check.rs Auto merge of #45668 - nikomatsakis:nll-free-region, r=arielb1 2017-11-06 23:30:57 +00:00