Commit abbab2d
authored
Rollup merge of #157917 - onehr:fix-for-loop-missing-in-suggestion-103561, r=folkertdev
Don't suggest adding `in` to a `for` loop that already has one
Closes #103561.
When a `for` loop is missing its `in`, the parser suggested inserting one based only on the token following the pattern. For a malformed binding such as `for i i in 0..10` it therefore suggested `for i in i in 0..10`, which is itself invalid.
The suggestion is now only emitted when the loop header does not already contain an `in` before the body. The `for x EXPR` / `for x of EXPR` / `for x = EXPR` suggestions are unchanged.4 files changed
Lines changed: 52 additions & 6 deletions
File tree
- compiler/rustc_parse/src
- parser
- tests/ui/suggestions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
689 | 689 | | |
690 | 690 | | |
691 | 691 | | |
692 | | - | |
| 692 | + | |
693 | 693 | | |
694 | 694 | | |
695 | 695 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
3086 | 3086 | | |
3087 | 3087 | | |
3088 | 3088 | | |
3089 | | - | |
| 3089 | + | |
3090 | 3090 | | |
3091 | 3091 | | |
3092 | 3092 | | |
3093 | | - | |
| 3093 | + | |
3094 | 3094 | | |
3095 | | - | |
| 3095 | + | |
| 3096 | + | |
3096 | 3097 | | |
3097 | | - | |
| 3098 | + | |
| 3099 | + | |
| 3100 | + | |
| 3101 | + | |
3098 | 3102 | | |
3099 | 3103 | | |
3100 | | - | |
| 3104 | + | |
| 3105 | + | |
| 3106 | + | |
| 3107 | + | |
| 3108 | + | |
| 3109 | + | |
| 3110 | + | |
| 3111 | + | |
| 3112 | + | |
| 3113 | + | |
| 3114 | + | |
| 3115 | + | |
| 3116 | + | |
| 3117 | + | |
| 3118 | + | |
| 3119 | + | |
| 3120 | + | |
| 3121 | + | |
| 3122 | + | |
| 3123 | + | |
3101 | 3124 | | |
3102 | 3125 | | |
3103 | 3126 | | |
| |||
Lines changed: 9 additions & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
Lines changed: 14 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 | + | |
0 commit comments