]> git.lizzy.rs Git - rust.git/commit
auto merge of #18234 : pnkfelix/rust/fsk-type-fragments-for-needsdrop-2, r=nikomatsakis
authorbors <bors@rust-lang.org>
Tue, 25 Nov 2014 15:48:05 +0000 (15:48 +0000)
committerbors <bors@rust-lang.org>
Tue, 25 Nov 2014 15:48:05 +0000 (15:48 +0000)
commit0e06f71747749e33ca590c334658bddde97a7e54
tree57a3fc9cca2562ea6595e95c54233915ce5b4c95
parent48ca6d1840818e4a8977d00ed62cf0e8e0e5d193
parent5fbe0cac7c568774082755ecc098caba98352a1e
auto merge of #18234 : pnkfelix/rust/fsk-type-fragments-for-needsdrop-2, r=nikomatsakis

Code to fragment paths into pieces based on subparts being moved around, e.g. moving `x.1` out of a tuple `(A,B,C)` leaves behind the fragments `x.0: A` and `x.2: C`.  Further discussion in borrowck/doc.rs.

Includes differentiation between assigned_fragments and moved_fragments, support for all-but-one array fragments, and instrumentation to print out the moved/assigned/unmmoved/parents for each function, factored out into a separate submodule.

These fragments can then be used by `trans` to inject stack-local dynamic drop flags.  (They also can be hooked up with dataflow to reduce the expected number of injected flags.)