diff options
| author | Esteban Küber <esteban@kuber.com.ar> | 2020-10-25 14:20:44 -0700 |
|---|---|---|
| committer | Esteban Küber <esteban@kuber.com.ar> | 2020-10-25 18:34:14 -0700 |
| commit | ff61949860813247b26d96eb374b41b46becba81 (patch) | |
| tree | 6d6b637fba7fd99eca376a8e3a17b831146dc5fd /src | |
| parent | 040f56881500279889fd847b767f5fde14b21028 (diff) | |
| download | rust-ff61949860813247b26d96eb374b41b46becba81.tar.gz rust-ff61949860813247b26d96eb374b41b46becba81.zip | |
Tweak invalid `fn` header and body parsing
* Recover empty `fn` bodies when encountering `}` * Recover trailing `>` in return types * Recover from non-type in array type `[<BAD TOKEN>; LEN]`
Diffstat (limited to 'src')
| -rw-r--r-- | src/test/ui/issues/issue-39616.rs | 1 | ||||
| -rw-r--r-- | src/test/ui/issues/issue-39616.stderr | 8 | ||||
| -rw-r--r-- | src/test/ui/parser/issue-24780.rs | 7 | ||||
| -rw-r--r-- | src/test/ui/parser/issue-24780.stderr | 4 | ||||
| -rw-r--r-- | src/test/ui/parser/issue-6610.stderr | 8 |
5 files changed, 10 insertions, 18 deletions
diff --git a/src/test/ui/issues/issue-39616.rs b/src/test/ui/issues/issue-39616.rs index 9aebb4e2f48..46b5aa334ca 100644 --- a/src/test/ui/issues/issue-39616.rs +++ b/src/test/ui/issues/issue-39616.rs @@ -1,4 +1,3 @@ fn foo(a: [0; 1]) {} //~ ERROR expected type, found `0` -//~| ERROR expected one of `)`, `,`, `->`, `;`, `where`, or `{`, found `]` fn main() {} diff --git a/src/test/ui/issues/issue-39616.stderr b/src/test/ui/issues/issue-39616.stderr index fa8ef50a073..393d1f2e2ce 100644 --- a/src/test/ui/issues/issue-39616.stderr +++ b/src/test/ui/issues/issue-39616.stderr @@ -4,11 +4,5 @@ error: expected type, found `0` LL | fn foo(a: [0; 1]) {} | ^ expected type -error: expected one of `)`, `,`, `->`, `;`, `where`, or `{`, found `]` - --> $DIR/issue-39616.rs:1:16 - | -LL | fn foo(a: [0; 1]) {} - | ^ expected one of `)`, `,`, `->`, `;`, `where`, or `{` - -error: aborting due to 2 previous errors +error: aborting due to previous error diff --git a/src/test/ui/parser/issue-24780.rs b/src/test/ui/parser/issue-24780.rs index 568a6c5f05c..20665b549d2 100644 --- a/src/test/ui/parser/issue-24780.rs +++ b/src/test/ui/parser/issue-24780.rs @@ -1,8 +1,9 @@ // Verify that '>' is not both expected and found at the same time, as it used // to happen in #24780. For example, following should be an error: -// expected one of ..., `>`, ... found `>` +// expected one of ..., `>`, ... found `>`. No longer exactly this, but keeping for posterity. -fn foo() -> Vec<usize>> { - //~^ ERROR expected one of `!`, `+`, `::`, `;`, `where`, or `{`, found `>` +fn foo() -> Vec<usize>> { //~ ERROR unmatched angle bracket Vec::new() } + +fn main() {} diff --git a/src/test/ui/parser/issue-24780.stderr b/src/test/ui/parser/issue-24780.stderr index bdd089bb7a1..d12b13d35f8 100644 --- a/src/test/ui/parser/issue-24780.stderr +++ b/src/test/ui/parser/issue-24780.stderr @@ -1,8 +1,8 @@ -error: expected one of `!`, `+`, `::`, `;`, `where`, or `{`, found `>` +error: unmatched angle bracket --> $DIR/issue-24780.rs:5:23 | LL | fn foo() -> Vec<usize>> { - | ^ expected one of `!`, `+`, `::`, `;`, `where`, or `{` + | ^^ help: remove extra angle bracket error: aborting due to previous error diff --git a/src/test/ui/parser/issue-6610.stderr b/src/test/ui/parser/issue-6610.stderr index acbecfded4b..4a3bc752553 100644 --- a/src/test/ui/parser/issue-6610.stderr +++ b/src/test/ui/parser/issue-6610.stderr @@ -2,11 +2,9 @@ error: expected one of `->`, `;`, `where`, or `{`, found `}` --> $DIR/issue-6610.rs:1:20 | LL | trait Foo { fn a() } - | - ^ - | | | - | | expected one of `->`, `;`, `where`, or `{` - | | the item list ends here - | while parsing this item list starting here + | - ^ expected one of `->`, `;`, `where`, or `{` + | | + | while parsing this `fn` error: aborting due to previous error |
