5
5
The MIR-based region checking code is located in [ the ` rustc_mir::borrow_check `
6
6
module] [ nll ] .
7
7
8
- [ nll ] : https://doc.rust-lang.org/nightly/nightly-rustc/rustc_mir/borrow_check /index.html
8
+ [ nll ] : https://doc.rust-lang.org/nightly/nightly-rustc/rustc_borrowck /index.html
9
9
10
10
The MIR-based region analysis consists of two major functions:
11
11
@@ -38,10 +38,10 @@ The MIR-based region analysis consists of two major functions:
38
38
39
39
[ cp ] : ./region_inference/constraint_propagation.md
40
40
[ fvb ] : ../appendix/background.md#free-vs-bound
41
- [ `replace_regions_in_mir` ] : https://doc.rust-lang.org/nightly/nightly-rustc/rustc_mir/borrow_check /nll/fn.replace_regions_in_mir.html
42
- [ `compute_regions` ] : https://doc.rust-lang.org/nightly/nightly-rustc/rustc_mir/borrow_check /nll/fn.compute_regions.html
43
- [ `RegionInferenceContext` ] : https://doc.rust-lang.org/nightly/nightly-rustc/rustc_mir/borrow_check /region_infer/struct.RegionInferenceContext.html
44
- [ `solve` ] : https://doc.rust-lang.org/nightly/nightly-rustc/rustc_mir/borrow_check /region_infer/struct.RegionInferenceContext.html#method.solve
41
+ [ `replace_regions_in_mir` ] : https://doc.rust-lang.org/nightly/nightly-rustc/rustc_borrowck /nll/fn.replace_regions_in_mir.html
42
+ [ `compute_regions` ] : https://doc.rust-lang.org/nightly/nightly-rustc/rustc_borrowck /nll/fn.compute_regions.html
43
+ [ `RegionInferenceContext` ] : https://doc.rust-lang.org/nightly/nightly-rustc/rustc_borrowck /region_infer/struct.RegionInferenceContext.html
44
+ [ `solve` ] : https://doc.rust-lang.org/nightly/nightly-rustc/rustc_borrowck /region_infer/struct.RegionInferenceContext.html#method.solve
45
45
[ NLL RFC ] : https://rust-lang.github.io/rfcs/2094-nll.html
46
46
[ MIR type checker ] : ./type_check.md
47
47
@@ -68,7 +68,7 @@ the moment.
68
68
69
69
TODO: write about _ how_ these regions are computed.
70
70
71
- [ `UniversalRegions` ] : https://doc.rust-lang.org/nightly/nightly-rustc/rustc_mir/borrow_check /universal_regions/struct.UniversalRegions.html
71
+ [ `UniversalRegions` ] : https://doc.rust-lang.org/nightly/nightly-rustc/rustc_borrowck /universal_regions/struct.UniversalRegions.html
72
72
73
73
<a name =" region-variables " ></a >
74
74
@@ -115,7 +115,7 @@ common sorts of constraints are:
115
115
2 . Liveness constraints. Each region needs to be live at points where it can be
116
116
used. These constraints are collected by [ ` generate_constraints ` ] .
117
117
118
- [ `generate_constraints` ] : https://doc.rust-lang.org/nightly/nightly-rustc/rustc_mir/borrow_check /constraint_generation/fn.generate_constraints.html
118
+ [ `generate_constraints` ] : https://doc.rust-lang.org/nightly/nightly-rustc/rustc_borrowck /constraint_generation/fn.generate_constraints.html
119
119
120
120
## Inference Overview
121
121
@@ -219,13 +219,13 @@ Here are some of the fields of the struct:
219
219
- [ ` closure_bounds_mapping ` ] : used for propagating region constraints from
220
220
closures back out to the creator of the closure.
221
221
222
- [ `constraints` ] : https://doc.rust-lang.org/nightly/nightly-rustc/rustc_mir/borrow_check /region_infer/struct.RegionInferenceContext.html#structfield.constraints
223
- [ `liveness_constraints` ] : https://doc.rust-lang.org/nightly/nightly-rustc/rustc_mir/borrow_check /region_infer/struct.RegionInferenceContext.html#structfield.liveness_constraints
222
+ [ `constraints` ] : https://doc.rust-lang.org/nightly/nightly-rustc/rustc_borrowck /region_infer/struct.RegionInferenceContext.html#structfield.constraints
223
+ [ `liveness_constraints` ] : https://doc.rust-lang.org/nightly/nightly-rustc/rustc_borrowck /region_infer/struct.RegionInferenceContext.html#structfield.liveness_constraints
224
224
[ `location` ] : https://doc.rust-lang.org/nightly/nightly-rustc/rustc_middle/mir/struct.Location.html
225
- [ `universal_regions` ] : https://doc.rust-lang.org/nightly/nightly-rustc/rustc_mir/borrow_check /region_infer/struct.RegionInferenceContext.html#structfield.universal_regions
226
- [ `universal_region_relations` ] : https://doc.rust-lang.org/nightly/nightly-rustc/rustc_mir/borrow_check /region_infer/struct.RegionInferenceContext.html#structfield.universal_region_relations
227
- [ `type_tests` ] : https://doc.rust-lang.org/nightly/nightly-rustc/rustc_mir/borrow_check /region_infer/struct.RegionInferenceContext.html#structfield.type_tests
228
- [ `closure_bounds_mapping` ] : https://doc.rust-lang.org/nightly/nightly-rustc/rustc_mir/borrow_check /region_infer/struct.RegionInferenceContext.html#structfield.closure_bounds_mapping
225
+ [ `universal_regions` ] : https://doc.rust-lang.org/nightly/nightly-rustc/rustc_borrowck /region_infer/struct.RegionInferenceContext.html#structfield.universal_regions
226
+ [ `universal_region_relations` ] : https://doc.rust-lang.org/nightly/nightly-rustc/rustc_borrowck /region_infer/struct.RegionInferenceContext.html#structfield.universal_region_relations
227
+ [ `type_tests` ] : https://doc.rust-lang.org/nightly/nightly-rustc/rustc_borrowck /region_infer/struct.RegionInferenceContext.html#structfield.type_tests
228
+ [ `closure_bounds_mapping` ] : https://doc.rust-lang.org/nightly/nightly-rustc/rustc_borrowck /region_infer/struct.RegionInferenceContext.html#structfield.closure_bounds_mapping
229
229
230
230
TODO: should we discuss any of the others fields? What about the SCCs?
231
231
@@ -234,6 +234,6 @@ inference. This is done by calling the [`solve`] method on the context. This
234
234
is where we call [ ` propagate_constraints ` ] and then check the resulting type
235
235
tests and universal regions, as discussed above.
236
236
237
- [ `propagate_constraints` ] : https://doc.rust-lang.org/nightly/nightly-rustc/rustc_mir/borrow_check /region_infer/struct.RegionInferenceContext.html#method.propagate_constraints
238
- [ `check_type_tests` ] : https://doc.rust-lang.org/nightly/nightly-rustc/rustc_mir/borrow_check /region_infer/struct.RegionInferenceContext.html#method.check_type_tests
239
- [ `check_universal_regions` ] : https://doc.rust-lang.org/nightly/nightly-rustc/rustc_mir/borrow_check /region_infer/struct.RegionInferenceContext.html#method.check_universal_regions
237
+ [ `propagate_constraints` ] : https://doc.rust-lang.org/nightly/nightly-rustc/rustc_borrowck /region_infer/struct.RegionInferenceContext.html#method.propagate_constraints
238
+ [ `check_type_tests` ] : https://doc.rust-lang.org/nightly/nightly-rustc/rustc_borrowck /region_infer/struct.RegionInferenceContext.html#method.check_type_tests
239
+ [ `check_universal_regions` ] : https://doc.rust-lang.org/nightly/nightly-rustc/rustc_borrowck /region_infer/struct.RegionInferenceContext.html#method.check_universal_regions
0 commit comments