Commit 243521a
authored
Rollup merge of rust-lang#157888 - TaKO8Ki:fix-raw-ref-nested-call-arg-recover, r=folkertdev
Avoid `&raw` call recovery inside nested delimiters
Fixes rust-lang#157853
The `&raw <expr>` recovery is only valid for malformed raw refs directly in the call argument list. When it handled the nested array case, it tried to skip tokens until the call's ), reached the nested ], and could ICE in parse_token_tree.
This PR scopes the call-argument recovery to the call's delimiter depth and makes the recovery loop stop before any closing delimiter or EOF.3 files changed
Lines changed: 28 additions & 4 deletions
File tree
- compiler/rustc_parse/src/parser
- tests/ui/parser/recover
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1278 | 1278 | | |
1279 | 1279 | | |
1280 | 1280 | | |
| 1281 | + | |
1281 | 1282 | | |
1282 | 1283 | | |
1283 | 1284 | | |
1284 | | - | |
| 1285 | + | |
| 1286 | + | |
| 1287 | + | |
| 1288 | + | |
1285 | 1289 | | |
1286 | 1290 | | |
1287 | 1291 | | |
| |||
1299 | 1303 | | |
1300 | 1304 | | |
1301 | 1305 | | |
1302 | | - | |
1303 | | - | |
1304 | | - | |
| 1306 | + | |
| 1307 | + | |
1305 | 1308 | | |
1306 | 1309 | | |
1307 | 1310 | | |
| |||
Lines changed: 6 additions & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
Lines changed: 15 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 | + | |
0 commit comments