Commit ab5bec2
committed
Auto merge of #42634 - Zoxc:for-desugar2, r=nikomatsakis
Change the for-loop desugar so the `break` does not affect type inference. Fixes #42618
Rewrite the `for` loop desugaring to avoid contaminating the inference results. Under the older desugaring, `for x in vec![] { .. }` would erroneously type-check, even though the type of `vec![]` is unconstrained. (written by @nikomatsakis)File tree
6 files changed
+137
-12
lines changed- src
- libcore/iter
- librustc/hir
- test
- compile-fail
- run-pass
6 files changed
+137
-12
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
191 | 191 | | |
192 | 192 | | |
193 | 193 | | |
194 | | - | |
195 | | - | |
| 194 | + | |
| 195 | + | |
| 196 | + | |
196 | 197 | | |
197 | 198 | | |
| 199 | + | |
198 | 200 | | |
199 | 201 | | |
200 | 202 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
2170 | 2170 | | |
2171 | 2171 | | |
2172 | 2172 | | |
2173 | | - | |
2174 | | - | |
| 2173 | + | |
| 2174 | + | |
| 2175 | + | |
2175 | 2176 | | |
2176 | 2177 | | |
2177 | | - | |
| 2178 | + | |
| 2179 | + | |
2178 | 2180 | | |
2179 | 2181 | | |
2180 | 2182 | | |
| |||
2186 | 2188 | | |
2187 | 2189 | | |
2188 | 2190 | | |
2189 | | - | |
| 2191 | + | |
| 2192 | + | |
| 2193 | + | |
| 2194 | + | |
| 2195 | + | |
| 2196 | + | |
2190 | 2197 | | |
2191 | 2198 | | |
2192 | 2199 | | |
2193 | 2200 | | |
| 2201 | + | |
| 2202 | + | |
| 2203 | + | |
| 2204 | + | |
2194 | 2205 | | |
2195 | | - | |
| 2206 | + | |
2196 | 2207 | | |
2197 | 2208 | | |
2198 | 2209 | | |
| |||
2222 | 2233 | | |
2223 | 2234 | | |
2224 | 2235 | | |
| 2236 | + | |
| 2237 | + | |
| 2238 | + | |
| 2239 | + | |
| 2240 | + | |
| 2241 | + | |
| 2242 | + | |
| 2243 | + | |
| 2244 | + | |
2225 | 2245 | | |
| 2246 | + | |
2226 | 2247 | | |
2227 | 2248 | | |
2228 | | - | |
| 2249 | + | |
2229 | 2250 | | |
2230 | 2251 | | |
2231 | 2252 | | |
| |||
2234 | 2255 | | |
2235 | 2256 | | |
2236 | 2257 | | |
2237 | | - | |
| 2258 | + | |
| 2259 | + | |
| 2260 | + | |
| 2261 | + | |
| 2262 | + | |
| 2263 | + | |
2238 | 2264 | | |
2239 | 2265 | | |
2240 | 2266 | | |
| |||
2601 | 2627 | | |
2602 | 2628 | | |
2603 | 2629 | | |
2604 | | - | |
| 2630 | + | |
2605 | 2631 | | |
2606 | 2632 | | |
2607 | 2633 | | |
2608 | 2634 | | |
2609 | 2635 | | |
2610 | 2636 | | |
2611 | | - | |
| 2637 | + | |
2612 | 2638 | | |
2613 | 2639 | | |
2614 | 2640 | | |
| |||
2626 | 2652 | | |
2627 | 2653 | | |
2628 | 2654 | | |
2629 | | - | |
| 2655 | + | |
2630 | 2656 | | |
2631 | 2657 | | |
2632 | 2658 | | |
| |||
Lines changed: 19 additions & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
| 18 | + | |
| 19 | + | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
| 18 | + | |
| 19 | + | |
| 20 | + | |
| 21 | + | |
| 22 | + | |
| 23 | + | |
| 24 | + | |
| 25 | + | |
| 26 | + | |
| 27 | + | |
| 28 | + | |
| 29 | + | |
| 30 | + | |
| 31 | + | |
| 32 | + | |
| 33 | + | |
| 34 | + | |
| 35 | + | |
| 36 | + | |
| 37 | + | |
| 38 | + | |
| 39 | + | |
| 40 | + | |
| 41 | + | |
| 42 | + | |
| 43 | + | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
Lines changed: 20 additions & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
| 18 | + | |
| 19 | + | |
| 20 | + | |
0 commit comments