This repository was archived by the owner on May 28, 2025. It is now read-only.
File tree Expand file tree Collapse file tree 5 files changed +25
-7
lines changed Expand file tree Collapse file tree 5 files changed +25
-7
lines changed Original file line number Diff line number Diff line change @@ -1733,13 +1733,20 @@ impl<'a> Parser<'a> {
17331733 Ok ( self . mk_expr ( lo. to ( self . prev_token . span ) , kind, attrs) )
17341734 }
17351735
1736- fn error_missing_in_for_loop ( & self ) {
1737- let in_span = self . prev_token . span . between ( self . token . span ) ;
1738- self . struct_span_err ( in_span, "missing `in` in `for` loop" )
1736+ fn error_missing_in_for_loop ( & mut self ) {
1737+ let ( span, msg, sugg) = if self . token . is_ident_named ( sym:: of) {
1738+ // Possibly using JS syntax (#75311).
1739+ let span = self . token . span ;
1740+ self . bump ( ) ;
1741+ ( span, "try using `in` here instead" , "in" )
1742+ } else {
1743+ ( self . prev_token . span . between ( self . token . span ) , "try adding `in` here" , " in " )
1744+ } ;
1745+ self . struct_span_err ( span, "missing `in` in `for` loop" )
17391746 . span_suggestion_short (
1740- in_span ,
1741- "try adding `in` here" ,
1742- " in " . into ( ) ,
1747+ span ,
1748+ msg ,
1749+ sugg . into ( ) ,
17431750 // Has been misleading, at least in the past (closed Issue #48492).
17441751 Applicability :: MaybeIncorrect ,
17451752 )
Original file line number Diff line number Diff line change @@ -737,6 +737,7 @@ symbols! {
737737 not,
738738 note,
739739 object_safe_for_dispatch,
740+ of,
740741 offset,
741742 omit_gdb_pretty_printer_section,
742743 on,
Original file line number Diff line number Diff line change 33fn main() {
44 for _i in 0..2 { //~ ERROR missing `in`
55 }
6+ for _i in 0..2 { //~ ERROR missing `in`
7+ }
68}
Original file line number Diff line number Diff line change 33fn main ( ) {
44 for _i 0 ..2 { //~ ERROR missing `in`
55 }
6+ for _i of 0 ..2 { //~ ERROR missing `in`
7+ }
68}
Original file line number Diff line number Diff line change @@ -4,5 +4,11 @@ error: missing `in` in `for` loop
44LL | for _i 0..2 {
55 | ^ help: try adding `in` here
66
7- error: aborting due to previous error
7+ error: missing `in` in `for` loop
8+ --> $DIR/issue-40782.rs:6:12
9+ |
10+ LL | for _i of 0..2 {
11+ | ^^ help: try using `in` here instead
12+
13+ error: aborting due to 2 previous errors
814
You can’t perform that action at this time.
0 commit comments