diff options
| author | Mazdak Farrokhzad <twingoow@gmail.com> | 2019-04-12 20:36:16 +0200 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2019-04-12 20:36:16 +0200 |
| commit | af4acd05338dcb0d47e235862b303c37d655951f (patch) | |
| tree | dffad55345acacf47eb4c37efabe13d151c0fcd7 /src/test/ui | |
| parent | ca9f04e41e2bb124e3ae74f6c179eeeac96e9c67 (diff) | |
| parent | 9b6b3d618c16976a273cfd4f95408eef37e6c82e (diff) | |
| download | rust-af4acd05338dcb0d47e235862b303c37d655951f.tar.gz rust-af4acd05338dcb0d47e235862b303c37d655951f.zip | |
Rollup merge of #59866 - estebank:recover-missing-semi, r=petrochenkov
Recover from missing semicolon based on the found token
When encountering one of a few keywords when a semicolon was
expected, suggest the semicolon and recover:
```
error: expected one of `.`, `;`, `?`, or an operator, found `let`
--> $DIR/recover-missing-semi.rs:4:5
|
LL | let _: usize = ()
| - help: missing semicolon here
LL |
LL | let _ = 3;
| ^^^
error[E0308]: mismatched types
--> $DIR/recover-missing-semi.rs:2:20
|
LL | let _: usize = ()
| ^^ expected usize, found ()
|
= note: expected type `usize`
found type `()`
```
Diffstat (limited to 'src/test/ui')
| -rw-r--r-- | src/test/ui/parser/recover-missing-semi.rs | 13 | ||||
| -rw-r--r-- | src/test/ui/parser/recover-missing-semi.stderr | 39 |
2 files changed, 52 insertions, 0 deletions
diff --git a/src/test/ui/parser/recover-missing-semi.rs b/src/test/ui/parser/recover-missing-semi.rs new file mode 100644 index 00000000000..1893dc716be --- /dev/null +++ b/src/test/ui/parser/recover-missing-semi.rs @@ -0,0 +1,13 @@ +fn main() { + let _: usize = () + //~^ ERROR mismatched types + let _ = 3; + //~^ ERROR expected one of +} + +fn foo() -> usize { + let _: usize = () + //~^ ERROR mismatched types + return 3; + //~^ ERROR expected one of +} diff --git a/src/test/ui/parser/recover-missing-semi.stderr b/src/test/ui/parser/recover-missing-semi.stderr new file mode 100644 index 00000000000..99339e4dd50 --- /dev/null +++ b/src/test/ui/parser/recover-missing-semi.stderr @@ -0,0 +1,39 @@ +error: expected one of `.`, `;`, `?`, or an operator, found `let` + --> $DIR/recover-missing-semi.rs:4:5 + | +LL | let _: usize = () + | - help: a semicolon may be missing here +LL | +LL | let _ = 3; + | ^^^ + +error: expected one of `.`, `;`, `?`, or an operator, found `return` + --> $DIR/recover-missing-semi.rs:11:5 + | +LL | let _: usize = () + | - help: a semicolon may be missing here +LL | +LL | return 3; + | ^^^^^^ + +error[E0308]: mismatched types + --> $DIR/recover-missing-semi.rs:2:20 + | +LL | let _: usize = () + | ^^ expected usize, found () + | + = note: expected type `usize` + found type `()` + +error[E0308]: mismatched types + --> $DIR/recover-missing-semi.rs:9:20 + | +LL | let _: usize = () + | ^^ expected usize, found () + | + = note: expected type `usize` + found type `()` + +error: aborting due to 4 previous errors + +For more information about this error, try `rustc --explain E0308`. |
