diff options
| author | Michael Goulet <michael@errs.io> | 2022-05-27 21:58:48 -0700 |
|---|---|---|
| committer | Michael Goulet <michael@errs.io> | 2022-06-13 20:53:48 -0700 |
| commit | d1ba2d25d483a65f41ca6277c160e2ea6d813e3b (patch) | |
| tree | d480e1569f36cc601d81acb748543c11cf8d6178 /src/test/ui/parser/issues | |
| parent | 3bdec3c8abdc48e46715d7b14b764af28da1cee3 (diff) | |
| download | rust-d1ba2d25d483a65f41ca6277c160e2ea6d813e3b.tar.gz rust-d1ba2d25d483a65f41ca6277c160e2ea6d813e3b.zip | |
Improve parsing errors and suggestions for bad if statements
Diffstat (limited to 'src/test/ui/parser/issues')
| -rw-r--r-- | src/test/ui/parser/issues/issue-13483.rs | 8 | ||||
| -rw-r--r-- | src/test/ui/parser/issues/issue-13483.stderr | 29 | ||||
| -rw-r--r-- | src/test/ui/parser/issues/issue-51602.stderr | 10 | ||||
| -rw-r--r-- | src/test/ui/parser/issues/issue-62554.stderr | 9 |
4 files changed, 24 insertions, 32 deletions
diff --git a/src/test/ui/parser/issues/issue-13483.rs b/src/test/ui/parser/issues/issue-13483.rs index a2fd9264b15..4e32fcab3f0 100644 --- a/src/test/ui/parser/issues/issue-13483.rs +++ b/src/test/ui/parser/issues/issue-13483.rs @@ -1,15 +1,15 @@ fn main() { if true { - } else if { //~ ERROR missing condition - //~^ ERROR mismatched types + } else if { + //~^ ERROR missing condition for `if` expression } else { } } fn foo() { if true { - } else if { //~ ERROR missing condition - //~^ ERROR mismatched types + } else if { + //~^ ERROR missing condition for `if` expression } bar(); } diff --git a/src/test/ui/parser/issues/issue-13483.stderr b/src/test/ui/parser/issues/issue-13483.stderr index 5fd05b18ce0..f5534090f18 100644 --- a/src/test/ui/parser/issues/issue-13483.stderr +++ b/src/test/ui/parser/issues/issue-13483.stderr @@ -2,32 +2,17 @@ error: missing condition for `if` expression --> $DIR/issue-13483.rs:3:14 | LL | } else if { - | ^ expected if condition here + | ^- if this block is the condition of the `if` expression, then it must be followed by another block + | | + | expected condition here error: missing condition for `if` expression --> $DIR/issue-13483.rs:11:14 | LL | } else if { - | ^ expected if condition here + | ^- if this block is the condition of the `if` expression, then it must be followed by another block + | | + | expected condition here -error[E0308]: mismatched types - --> $DIR/issue-13483.rs:3:15 - | -LL | } else if { - | _______________^ -LL | | -LL | | } else { - | |_____^ expected `bool`, found `()` - -error[E0308]: mismatched types - --> $DIR/issue-13483.rs:11:15 - | -LL | } else if { - | _______________^ -LL | | -LL | | } - | |_____^ expected `bool`, found `()` - -error: aborting due to 4 previous errors +error: aborting due to 2 previous errors -For more information about this error, try `rustc --explain E0308`. diff --git a/src/test/ui/parser/issues/issue-51602.stderr b/src/test/ui/parser/issues/issue-51602.stderr index d800890bca3..4a5653fdb51 100644 --- a/src/test/ui/parser/issues/issue-51602.stderr +++ b/src/test/ui/parser/issues/issue-51602.stderr @@ -2,9 +2,13 @@ error: expected `{`, found keyword `in` --> $DIR/issue-51602.rs:2:10 | LL | if i in 1..10 { - | -- ^^ expected `{` - | | - | this `if` expression has a condition, but no block + | ^^ expected `{` + | +note: the `if` expression is missing a block after this condition + --> $DIR/issue-51602.rs:2:8 + | +LL | if i in 1..10 { + | ^ error: aborting due to previous error diff --git a/src/test/ui/parser/issues/issue-62554.stderr b/src/test/ui/parser/issues/issue-62554.stderr index 3589016e1dc..9e62572e388 100644 --- a/src/test/ui/parser/issues/issue-62554.stderr +++ b/src/test/ui/parser/issues/issue-62554.stderr @@ -57,10 +57,13 @@ error: expected `{`, found `macro_rules` --> $DIR/issue-62554.rs:6:23 | LL | fn foo(u: u8) { if u8 macro_rules! u8 { (u6) => { fn uuuuuuuuuuu() { use s loo mod u8 { - | -- ^^^^^^^^^^^ expected `{` - | | - | this `if` expression has a condition, but no block + | ^^^^^^^^^^^ expected `{` | +note: the `if` expression is missing a block after this condition + --> $DIR/issue-62554.rs:6:20 + | +LL | fn foo(u: u8) { if u8 macro_rules! u8 { (u6) => { fn uuuuuuuuuuu() { use s loo mod u8 { + | ^^ help: try placing this code inside a block | LL | fn foo(u: u8) { if u8 { macro_rules! u8 { (u6) => { fn uuuuuuuuuuu() { use s loo mod u8 { } |
