Commit c005748
committed
Ensure borrows of fn/closure params do not outlive invocations.
resolve_lifetime.rs: Switch from BlockScope to FnScope in ScopeChain
construction. Lifetimes introduced by a fn signature are scoped to the
call-site for that fn. (Note `add_scope_and_walk_fn` must only add
FnScope for the walk of body, *not* of the fn signature.)
region.rs: Introduce new CodeExtentData::CallSiteScope variant. Use
CodeExtentData as the cx.parent, rather than just a NodeId. Change
DestructionScopeData to CallSiteScopeData.
regionck.rs: Thread call_site_scope via Rcx; constrain fn return
values.
(update; incorporated review feedback from niko.)1 parent 4dbdfb4 commit c005748
File tree
16 files changed
+170
-96
lines changed- src
- librustc_metadata
- librustc_typeck
- check
- librustc/middle
- infer
- traits
- ty
16 files changed
+170
-96
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
148 | 148 | | |
149 | 149 | | |
150 | 150 | | |
| 151 | + | |
| 152 | + | |
| 153 | + | |
151 | 154 | | |
152 | 155 | | |
153 | 156 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1466 | 1466 | | |
1467 | 1467 | | |
1468 | 1468 | | |
1469 | | - | |
| 1469 | + | |
| 1470 | + | |
1470 | 1471 | | |
1471 | 1472 | | |
1472 | | - | |
| 1473 | + | |
1473 | 1474 | | |
1474 | 1475 | | |
1475 | 1476 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
125 | 125 | | |
126 | 126 | | |
127 | 127 | | |
| 128 | + | |
| 129 | + | |
| 130 | + | |
| 131 | + | |
128 | 132 | | |
129 | 133 | | |
130 | 134 | | |
| |||
136 | 140 | | |
137 | 141 | | |
138 | 142 | | |
139 | | - | |
| 143 | + | |
140 | 144 | | |
141 | 145 | | |
142 | | - | |
143 | | - | |
| 146 | + | |
| 147 | + | |
144 | 148 | | |
145 | 149 | | |
146 | | - | |
147 | | - | |
148 | | - | |
149 | | - | |
| 150 | + | |
150 | 151 | | |
151 | 152 | | |
152 | | - | |
| 153 | + | |
| 154 | + | |
| 155 | + | |
| 156 | + | |
153 | 157 | | |
154 | 158 | | |
155 | 159 | | |
| |||
190 | 194 | | |
191 | 195 | | |
192 | 196 | | |
| 197 | + | |
193 | 198 | | |
194 | 199 | | |
195 | 200 | | |
| |||
215 | 220 | | |
216 | 221 | | |
217 | 222 | | |
| 223 | + | |
218 | 224 | | |
219 | 225 | | |
220 | 226 | | |
| |||
346 | 352 | | |
347 | 353 | | |
348 | 354 | | |
| 355 | + | |
| 356 | + | |
| 357 | + | |
| 358 | + | |
349 | 359 | | |
350 | 360 | | |
351 | 361 | | |
| |||
1101 | 1111 | | |
1102 | 1112 | | |
1103 | 1113 | | |
| 1114 | + | |
| 1115 | + | |
| 1116 | + | |
1104 | 1117 | | |
1105 | 1118 | | |
1106 | 1119 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
42 | 42 | | |
43 | 43 | | |
44 | 44 | | |
45 | | - | |
| 45 | + | |
46 | 46 | | |
47 | 47 | | |
48 | 48 | | |
| |||
83 | 83 | | |
84 | 84 | | |
85 | 85 | | |
86 | | - | |
87 | | - | |
88 | | - | |
| 86 | + | |
| 87 | + | |
| 88 | + | |
89 | 89 | | |
90 | 90 | | |
91 | 91 | | |
| |||
172 | 172 | | |
173 | 173 | | |
174 | 174 | | |
175 | | - | |
| 175 | + | |
176 | 176 | | |
177 | 177 | | |
178 | 178 | | |
179 | | - | |
| 179 | + | |
180 | 180 | | |
181 | 181 | | |
182 | 182 | | |
183 | 183 | | |
184 | | - | |
| 184 | + | |
185 | 185 | | |
186 | 186 | | |
187 | 187 | | |
188 | | - | |
| 188 | + | |
189 | 189 | | |
190 | 190 | | |
191 | 191 | | |
| |||
236 | 236 | | |
237 | 237 | | |
238 | 238 | | |
239 | | - | |
240 | | - | |
241 | | - | |
242 | | - | |
243 | | - | |
244 | | - | |
245 | 239 | | |
246 | 240 | | |
247 | 241 | | |
| |||
437 | 431 | | |
438 | 432 | | |
439 | 433 | | |
440 | | - | |
| 434 | + | |
441 | 435 | | |
442 | 436 | | |
443 | 437 | | |
| |||
461 | 455 | | |
462 | 456 | | |
463 | 457 | | |
464 | | - | |
465 | | - | |
466 | | - | |
467 | | - | |
468 | | - | |
469 | | - | |
470 | | - | |
471 | | - | |
| 458 | + | |
| 459 | + | |
| 460 | + | |
| 461 | + | |
| 462 | + | |
| 463 | + | |
| 464 | + | |
472 | 465 | | |
473 | 466 | | |
474 | 467 | | |
| |||
488 | 481 | | |
489 | 482 | | |
490 | 483 | | |
491 | | - | |
| 484 | + | |
| 485 | + | |
492 | 486 | | |
493 | 487 | | |
494 | 488 | | |
| |||
559 | 553 | | |
560 | 554 | | |
561 | 555 | | |
562 | | - | |
563 | | - | |
| 556 | + | |
| 557 | + | |
| 558 | + | |
| 559 | + | |
| 560 | + | |
564 | 561 | | |
565 | 562 | | |
566 | 563 | | |
| |||
604 | 601 | | |
605 | 602 | | |
606 | 603 | | |
607 | | - | |
| 604 | + | |
608 | 605 | | |
609 | 606 | | |
610 | 607 | | |
| |||
622 | 619 | | |
623 | 620 | | |
624 | 621 | | |
625 | | - | |
626 | | - | |
| 622 | + | |
| 623 | + | |
| 624 | + | |
| 625 | + | |
627 | 626 | | |
628 | 627 | | |
629 | 628 | | |
| |||
711 | 710 | | |
712 | 711 | | |
713 | 712 | | |
714 | | - | |
| 713 | + | |
715 | 714 | | |
716 | 715 | | |
717 | 716 | | |
| |||
864 | 863 | | |
865 | 864 | | |
866 | 865 | | |
867 | | - | |
| 866 | + | |
868 | 867 | | |
869 | 868 | | |
870 | 869 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
192 | 192 | | |
193 | 193 | | |
194 | 194 | | |
195 | | - | |
| 195 | + | |
| 196 | + | |
196 | 197 | | |
197 | 198 | | |
198 | 199 | | |
| |||
0 commit comments