about summary refs log tree commit diff
path: root/src/test/ui
diff options
context:
space:
mode:
authorEsteban Küber <esteban@kuber.com.ar>2019-10-20 14:35:46 -0700
committerEsteban Küber <esteban@kuber.com.ar>2019-10-28 10:53:13 -0700
commitd673d0ac8462bd30612b0cce719ac0bf15dfaf86 (patch)
tree0822ed1a284b2761a7b2a61b33a5b5dcaf0a123d /src/test/ui
parent03a50ae9b87021d4a166c70d2c932f1cb0aa8f28 (diff)
downloadrust-d673d0ac8462bd30612b0cce719ac0bf15dfaf86.tar.gz
rust-d673d0ac8462bd30612b0cce719ac0bf15dfaf86.zip
Use heuristics to recover parsing of missing `;`
- Detect `,` and `:` typos where `;` was intended.
- When the next token could have been the start of a new statement,
  detect a missing semicolon.
Diffstat (limited to 'src/test/ui')
-rw-r--r--src/test/ui/parser/import-from-path.stderr2
-rw-r--r--src/test/ui/parser/import-from-rename.stderr4
-rw-r--r--src/test/ui/parser/import-glob-path.stderr2
-rw-r--r--src/test/ui/parser/import-glob-rename.stderr4
-rw-r--r--src/test/ui/parser/issue-3036.rs4
-rw-r--r--src/test/ui/parser/issue-3036.stderr8
-rw-r--r--src/test/ui/parser/recover-missing-semi.rs4
-rw-r--r--src/test/ui/parser/recover-missing-semi.stderr20
8 files changed, 24 insertions, 24 deletions
diff --git a/src/test/ui/parser/import-from-path.stderr b/src/test/ui/parser/import-from-path.stderr
index 5842037fb80..84c3b31df20 100644
--- a/src/test/ui/parser/import-from-path.stderr
+++ b/src/test/ui/parser/import-from-path.stderr
@@ -2,7 +2,7 @@ error: expected `;`, found `::`
   --> $DIR/import-from-path.rs:2:15
    |
 LL | use foo::{bar}::baz
-   |               ^^ expected `;`
+   |               ^^ expected `;` here
 
 error: aborting due to previous error
 
diff --git a/src/test/ui/parser/import-from-rename.stderr b/src/test/ui/parser/import-from-rename.stderr
index a966e993737..53ceb0280f9 100644
--- a/src/test/ui/parser/import-from-rename.stderr
+++ b/src/test/ui/parser/import-from-rename.stderr
@@ -1,8 +1,8 @@
-error: expected `;`, found keyword `as`
+error: expected `;`, found `as`
   --> $DIR/import-from-rename.rs:3:16
    |
 LL | use foo::{bar} as baz;
-   |                ^^ expected `;`
+   |                ^^ expected `;` here
 
 error: aborting due to previous error
 
diff --git a/src/test/ui/parser/import-glob-path.stderr b/src/test/ui/parser/import-glob-path.stderr
index ebca2db8305..44f4fc57a4a 100644
--- a/src/test/ui/parser/import-glob-path.stderr
+++ b/src/test/ui/parser/import-glob-path.stderr
@@ -2,7 +2,7 @@ error: expected `;`, found `::`
   --> $DIR/import-glob-path.rs:2:11
    |
 LL | use foo::*::bar
-   |           ^^ expected `;`
+   |           ^^ expected `;` here
 
 error: aborting due to previous error
 
diff --git a/src/test/ui/parser/import-glob-rename.stderr b/src/test/ui/parser/import-glob-rename.stderr
index 28538732782..56f021c29d4 100644
--- a/src/test/ui/parser/import-glob-rename.stderr
+++ b/src/test/ui/parser/import-glob-rename.stderr
@@ -1,8 +1,8 @@
-error: expected `;`, found keyword `as`
+error: expected `;`, found `as`
   --> $DIR/import-glob-rename.rs:3:12
    |
 LL | use foo::* as baz;
-   |            ^^ expected `;`
+   |            ^^ expected `;` here
 
 error: aborting due to previous error
 
diff --git a/src/test/ui/parser/issue-3036.rs b/src/test/ui/parser/issue-3036.rs
index 00b241b9054..6a8b67fefa7 100644
--- a/src/test/ui/parser/issue-3036.rs
+++ b/src/test/ui/parser/issue-3036.rs
@@ -2,5 +2,5 @@
 
 fn main()
 {
-    let x = 3
-} //~ ERROR: expected one of `.`, `;`, `?`, or an operator, found `}`
+    let x = 3 //~ ERROR: expected `;`
+}
diff --git a/src/test/ui/parser/issue-3036.stderr b/src/test/ui/parser/issue-3036.stderr
index 18947b8fa40..b6557163d45 100644
--- a/src/test/ui/parser/issue-3036.stderr
+++ b/src/test/ui/parser/issue-3036.stderr
@@ -1,10 +1,10 @@
-error: expected one of `.`, `;`, `?`, or an operator, found `}`
-  --> $DIR/issue-3036.rs:6:1
+error: expected `;`, found ``}``
+  --> $DIR/issue-3036.rs:5:14
    |
 LL |     let x = 3
-   |              - expected one of `.`, `;`, `?`, or an operator here
+   |              ^ help: add `;` here
 LL | }
-   | ^ unexpected token
+   | - unexpected token
 
 error: aborting due to previous error
 
diff --git a/src/test/ui/parser/recover-missing-semi.rs b/src/test/ui/parser/recover-missing-semi.rs
index 1893dc716be..f47d5e6805f 100644
--- a/src/test/ui/parser/recover-missing-semi.rs
+++ b/src/test/ui/parser/recover-missing-semi.rs
@@ -1,13 +1,13 @@
 fn main() {
     let _: usize = ()
     //~^ ERROR mismatched types
+    //~| ERROR expected `;`
     let _ = 3;
-    //~^ ERROR expected one of
 }
 
 fn foo() -> usize {
     let _: usize = ()
     //~^ ERROR mismatched types
+    //~| ERROR expected `;`
     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
index 99339e4dd50..c40918ee2bd 100644
--- a/src/test/ui/parser/recover-missing-semi.stderr
+++ b/src/test/ui/parser/recover-missing-semi.stderr
@@ -1,20 +1,20 @@
-error: expected one of `.`, `;`, `?`, or an operator, found `let`
-  --> $DIR/recover-missing-semi.rs:4:5
+error: expected `;`, found `keyword `let``
+  --> $DIR/recover-missing-semi.rs:2:22
    |
 LL |     let _: usize = ()
-   |                      - help: a semicolon may be missing here
-LL |
+   |                      ^ help: add `;` here
+...
 LL |     let _ = 3;
-   |     ^^^
+   |     --- unexpected token
 
-error: expected one of `.`, `;`, `?`, or an operator, found `return`
-  --> $DIR/recover-missing-semi.rs:11:5
+error: expected `;`, found `keyword `return``
+  --> $DIR/recover-missing-semi.rs:9:22
    |
 LL |     let _: usize = ()
-   |                      - help: a semicolon may be missing here
-LL |
+   |                      ^ help: add `;` here
+...
 LL |     return 3;
-   |     ^^^^^^
+   |     ------ unexpected token
 
 error[E0308]: mismatched types
   --> $DIR/recover-missing-semi.rs:2:20