diff options
| author | Hirochika Matsumoto <hirochika.k.matsumoto@gmail.com> | 2023-05-16 14:53:05 +0900 |
|---|---|---|
| committer | Hirochika Matsumoto <hirochika.k.matsumoto@gmail.com> | 2023-11-27 22:06:42 +0900 |
| commit | 730d299354f7ef09d8e30609110fc499e0e22d71 (patch) | |
| tree | b4cdf853948757dffe6f792fbf5f40e780c6016d | |
| parent | 61c3e4d56ecc77899095590d9fd03ffc39e9849e (diff) | |
| download | rust-730d299354f7ef09d8e30609110fc499e0e22d71.tar.gz rust-730d299354f7ef09d8e30609110fc499e0e22d71.zip | |
Address review feedbacks
Also addressed merge conflicts upon rebasing.
| -rw-r--r-- | compiler/rustc_parse/src/parser/stmt.rs | 33 | ||||
| -rw-r--r-- | tests/ui/suggestions/range-index-instead-of-colon.rs | 1 | ||||
| -rw-r--r-- | tests/ui/suggestions/range-index-instead-of-colon.stderr | 7 |
3 files changed, 18 insertions, 23 deletions
diff --git a/compiler/rustc_parse/src/parser/stmt.rs b/compiler/rustc_parse/src/parser/stmt.rs index 71db5609edc..391a4777bd9 100644 --- a/compiler/rustc_parse/src/parser/stmt.rs +++ b/compiler/rustc_parse/src/parser/stmt.rs @@ -571,6 +571,7 @@ impl<'a> Parser<'a> { // integer literal (e.g. `1:42`), it's likely a range // expression for Pythonistas and we can suggest so. if self.prev_token.is_integer_lit() + && self.may_recover() && self.look_ahead(1, |token| token.is_integer_lit()) { // FIXME(hkmatsumoto): Might be better to trigger @@ -581,22 +582,22 @@ impl<'a> Parser<'a> { "..", Applicability::MaybeIncorrect, ); - } - - // if next token is following a colon, it's likely a path - // and we can suggest a path separator - self.bump(); - if self.token.span.lo() == self.prev_token.span.hi() { - err.span_suggestion_verbose( - self.prev_token.span, - "maybe write a path separator here", - "::", - Applicability::MaybeIncorrect, - ); - } - if self.sess.unstable_features.is_nightly_build() { - // FIXME(Nilstrieb): Remove this again after a few months. - err.note("type ascription syntax has been removed, see issue #101728 <https://github.com/rust-lang/rust/issues/101728>"); + } else { + // if next token is following a colon, it's likely a path + // and we can suggest a path separator + self.bump(); + if self.token.span.lo() == self.prev_token.span.hi() { + err.span_suggestion_verbose( + self.prev_token.span, + "maybe write a path separator here", + "::", + Applicability::MaybeIncorrect, + ); + } + if self.sess.unstable_features.is_nightly_build() { + // FIXME(Nilstrieb): Remove this again after a few months. + err.note("type ascription syntax has been removed, see issue #101728 <https://github.com/rust-lang/rust/issues/101728>"); + } } } diff --git a/tests/ui/suggestions/range-index-instead-of-colon.rs b/tests/ui/suggestions/range-index-instead-of-colon.rs index f183590d2c7..0805102de78 100644 --- a/tests/ui/suggestions/range-index-instead-of-colon.rs +++ b/tests/ui/suggestions/range-index-instead-of-colon.rs @@ -4,5 +4,4 @@ fn main() { &[1, 2, 3][1:2]; //~^ ERROR: expected one of //~| HELP: you might have meant to make a slice with range index - //~| HELP: maybe write a path separator here } diff --git a/tests/ui/suggestions/range-index-instead-of-colon.stderr b/tests/ui/suggestions/range-index-instead-of-colon.stderr index 72e400fba0a..c7a12e9e4fb 100644 --- a/tests/ui/suggestions/range-index-instead-of-colon.stderr +++ b/tests/ui/suggestions/range-index-instead-of-colon.stderr @@ -4,15 +4,10 @@ error: expected one of `.`, `?`, `]`, or an operator, found `:` LL | &[1, 2, 3][1:2]; | ^ expected one of `.`, `?`, `]`, or an operator | - = note: type ascription syntax has been removed, see issue #101728 <https://github.com/rust-lang/rust/issues/101728> help: you might have meant to make a slice with range index | LL | &[1, 2, 3][1..2]; | ~~ -help: maybe write a path separator here - | -LL | &[1, 2, 3][1::2]; - | ~~ -error: aborting due to previous error +error: aborting due to 1 previous error |
