Eduard-Mihai Burtescu
511743c438
MIR: s/Lvalue/Place in type names.
2017-12-01 18:47:36 +02:00
Matthew Jasper
d409dbf983
Add initialization info to MoveData
...
* Used for new dataflow to track if a variable has every been initialized
* Used for other dataflows that need to be updated for initializations
2017-11-27 08:06:36 +00:00
Keith Yeung
0996bb0901
Kill the storage for all locals on returning terminators
2017-11-24 12:00:59 -08:00
bors
b1409af73d
Auto merge of #46032 - KiChjang:ignore-borrowck-statics, r=nikomatsakis
...
Ignore borrowck for static lvalues and allow assignment to static muts
Fixes #45129 .
Fixes #45641 .
2017-11-18 17:30:26 +00:00
Keith Yeung
c9d1db7bc5
Do not registor borrows for unsafe lvalues
2017-11-17 14:16:37 -08:00
Niko Matsakis
72675d82d7
replace RegionIndex
with RegionVid
(which now impls Idx)
2017-11-16 05:57:45 -05:00
Mikhail Modin
34be1516aa
fix comment, remove redundant code
2017-11-15 11:21:05 +03:00
Mikhail Modin
830d65c1ff
add StorageDead
handling
2017-11-15 11:21:05 +03:00
bors
f93a4928c2
Auto merge of #45922 - vramana:fix-45702, r=nikomatsakis
...
Fix MIR borrowck EndRegion not found
Fixes #45702
- [x] Add Tests
2017-11-15 04:48:16 +00:00
Ramana Venkata
fbb7df0f82
Fix MIR borrowck EndRegion not found
...
Updated tests
Fixes #45702
2017-11-11 04:40:23 +05:30
Mikhail Modin
3ccb567b90
Add TerminatorKind::DropAndReplace
handling
2017-11-09 11:55:23 +03:00
Mikhail Modin
e48691a578
restore move out dataflow, add report of move out errors
2017-11-08 22:04:56 +03:00
Niko Matsakis
b772827350
encapsulate the Region
struct within region inference
2017-11-02 04:40:50 -04:00
Niko Matsakis
cafbd99c38
extend NLL regions to include free region indices and add outlives
2017-11-02 04:40:50 -04:00
Niko Matsakis
a94b01a0e2
connect MIR borrowck with NLL
2017-10-31 12:41:40 -04:00
Niko Matsakis
81449174f3
make the dataflow / mir-borrowck types carry a 'tcx
lifetime
...
Also, factor out `do_mir_borrowck`, which is the code that actually
performs the MIR borrowck from within the scope of an inference context.
This change should be a pure refactoring.
2017-10-31 12:41:40 -04:00
Niko Matsakis
f700728a3b
make end-point optional in the borrow check
2017-10-31 12:41:39 -04:00
kennytm
9a43c28e6b
Rollup merge of #44987 - pnkfelix:mir-borrowck-fix-borrowindexes-ice, r=arielb1
...
`EndRegion` do not always correspond to borrow-data entries
Remove assertion that the argument to every `EndRegion` correspond to some dataflow-tracked borrow-data entry.
Fix #44828
(The comment thread on the aforementioned issue discusses why its best to just remove this assertion.)
2017-10-05 20:22:34 +08:00
Mikhail Modin
c68b10f5ee
add notes to report_conflicting_borrow MIR borrowck
2017-10-04 10:35:42 +03:00
Felix S. Klock II
17f6b6810b
Remove assertion that the argument to every EndRegion
correspond to
...
some dataflow-tracked borrow-data entry.
Fix #44828
(The comment thread on the aforementioned issue discusses why its best
to just remove this assertion.)
2017-10-02 22:40:51 +02:00
John Kåre Alsaker
efc7d46188
Analyse storage liveness and preserve it during generator transformation
2017-09-13 23:28:10 +02:00
Eduard-Mihai Burtescu
8bdfd8a003
rustc: rename CodeExtent to Scope and RegionMaps to ScopeTree.
2017-09-01 23:27:48 +03:00
Vadim Petrochenkov
de4dbe5789
rustc: Remove some dead code
2017-08-19 13:27:16 +03:00
Felix S. Klock II
9f6ef669d6
Added dataflow analysis for Borrows
.
...
post-rebase: addressed review comment: rename `loc_map`/`location_map` and `rgn_map`/`region_map`.
post-rebase: remove now unnecessary `mut` decl.
post-rebase: address comments: bind iterator expr, and alpha-rename `loc`/`location` and `idx`/`index`.
2017-08-16 15:53:27 +02:00
Felix S. Klock II
cff060b960
Refactor trait BitDenotation
to take Location
instead of BasicBlock
/usize
argument pairs.
2017-08-16 15:53:27 +02:00
bors
bffc973da8
Auto merge of #43794 - Eijebong:fix_typos, r=lukaramu,steveklanik,imperio
...
Fix some typos
I wrote a really naive script and found those typos in the documentation.
2017-08-12 05:52:19 +00:00
Bastien Orivel
47cb3c5bc2
Fix some typos
2017-08-11 00:16:18 +02:00
Ariel Ben-Yehuda
17d2bcd162
For box expressions, use NZ drop instead of a free block
...
This falls naturally out of making drop elaboration work with `box`
expressions, which is probably required for sane MIR borrow-checking.
This is a pure refactoring with no intentional functional effects.
2017-08-10 15:57:28 +03:00
Ralf Jung
5264103de4
add new instructions for asserting when values are valid, and to describe when we can rely on them being locked in memory
2017-07-30 01:11:59 -07:00
Felix S. Klock II
13cd022060
Shift mir-dataflow from rustc_borrowck
to rustc_mir
crate.
...
Turn `elaborate_drops` and `rustc_peek` implementations into MIR
passes that also live in `rustc_mir` crate.
Rewire things so `rustc_driver` uses the `ElaborateDrops` from
`rustc_mir` crate.
2017-06-28 13:59:12 +02:00