diff options
| author | bors <bors@rust-lang.org> | 2021-07-18 05:58:16 +0000 |
|---|---|---|
| committer | bors <bors@rust-lang.org> | 2021-07-18 05:58:16 +0000 |
| commit | 3ab6b60337edeb49339d173853fee1f8569421e0 (patch) | |
| tree | 56d696f33ba36371e0eda73e4c29172bf7a01fd4 /src | |
| parent | 77d155973c6c22a0e1af49a4a9bac024f697851d (diff) | |
| parent | b56079ec5466af5bff7d7d174ed6ae248aaa92c4 (diff) | |
| download | rust-3ab6b60337edeb49339d173853fee1f8569421e0.tar.gz rust-3ab6b60337edeb49339d173853fee1f8569421e0.zip | |
Auto merge of #87071 - inquisitivecrystal:inclusive-range, r=estebank
Add diagnostics for mistyped inclusive range Inclusive ranges are correctly typed as `..=`. However, it's quite easy to think of it as being like `==`, and type `..==` instead. This PR adds helpful diagnostics for this case. Resolves #86395 (there are some other cases there, but I think those should probably have separate issues). r? `@estebank`
Diffstat (limited to 'src')
| -rw-r--r-- | src/test/ui/parser/range-inclusive-extra-equals.rs | 10 | ||||
| -rw-r--r-- | src/test/ui/parser/range-inclusive-extra-equals.stderr | 10 |
2 files changed, 20 insertions, 0 deletions
diff --git a/src/test/ui/parser/range-inclusive-extra-equals.rs b/src/test/ui/parser/range-inclusive-extra-equals.rs new file mode 100644 index 00000000000..d41c0699cf7 --- /dev/null +++ b/src/test/ui/parser/range-inclusive-extra-equals.rs @@ -0,0 +1,10 @@ +// Makes sure that a helpful message is shown when someone mistypes +// an inclusive range as `..==` rather than `..=`. This is an +// easy mistake, because of the resemblance to`==`. +// See #86395 for a bit of background. + +pub fn main() { + if let 1..==3 = 1 {} //~ERROR unexpected `=` after inclusive range + //~|HELP use `..=` instead + //~|NOTE inclusive ranges end with a single equals sign +} diff --git a/src/test/ui/parser/range-inclusive-extra-equals.stderr b/src/test/ui/parser/range-inclusive-extra-equals.stderr new file mode 100644 index 00000000000..d37b6be4fa1 --- /dev/null +++ b/src/test/ui/parser/range-inclusive-extra-equals.stderr @@ -0,0 +1,10 @@ +error: unexpected `=` after inclusive range + --> $DIR/range-inclusive-extra-equals.rs:7:13 + | +LL | if let 1..==3 = 1 {} + | ^^^^ help: use `..=` instead + | + = note: inclusive ranges end with a single equals sign (`..=`) + +error: aborting due to previous error + |
