Detect missing if blocks
When unnecessarily using a fat arrow after an if condition, suggest the removal of it. When finding an if statement with no block, point at the `if` keyword to provide more context.
This commit is contained in:
parent
0c9afa87ba
commit
ba7039cfd6
5 changed files with 60 additions and 10 deletions
|
|
@ -19,7 +19,7 @@ error: expected `[`, found `#`
|
|||
--> $DIR/issue-40006.rs:20:17
|
||||
|
|
||||
LL | fn xxx() { ### } //~ ERROR missing
|
||||
| ^
|
||||
| ^ expected `[`
|
||||
|
||||
error: missing `fn`, `type`, or `const` for trait-item declaration
|
||||
--> $DIR/issue-40006.rs:20:21
|
||||
|
|
|
|||
18
src/test/ui/if-without-block.rs
Normal file
18
src/test/ui/if-without-block.rs
Normal file
|
|
@ -0,0 +1,18 @@
|
|||
// Copyright 2018 The Rust Project Developers. See the COPYRIGHT
|
||||
// file at the top-level directory of this distribution and at
|
||||
// http://rust-lang.org/COPYRIGHT.
|
||||
//
|
||||
// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
|
||||
// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
|
||||
// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
|
||||
// option. This file may not be copied, modified, or distributed
|
||||
// except according to those terms.
|
||||
|
||||
fn main() {
|
||||
let n = 1;
|
||||
if 5 == {
|
||||
//~^ NOTE this `if` statement has a condition, but no block
|
||||
println!("five");
|
||||
}
|
||||
}
|
||||
//~^ ERROR expected `{`, found `}`
|
||||
11
src/test/ui/if-without-block.stderr
Normal file
11
src/test/ui/if-without-block.stderr
Normal file
|
|
@ -0,0 +1,11 @@
|
|||
error: expected `{`, found `}`
|
||||
--> $DIR/if-without-block.rs:17:1
|
||||
|
|
||||
13 | if 5 == {
|
||||
| -- this `if` statement has a condition, but no block
|
||||
...
|
||||
17 | }
|
||||
| ^
|
||||
|
||||
error: aborting due to previous error
|
||||
|
||||
|
|
@ -2,11 +2,13 @@ error: expected `{`, found `=>`
|
|||
--> $DIR/missing-block-hint.rs:13:18
|
||||
|
|
||||
LL | if (foo) => {} //~ ERROR expected `{`, found `=>`
|
||||
| ^^
|
||||
| ^^ help: only necessary in match arms, not before if blocks
|
||||
|
||||
error: expected `{`, found `bar`
|
||||
--> $DIR/missing-block-hint.rs:17:13
|
||||
|
|
||||
LL | if (foo)
|
||||
| -- this `if` statement has a condition, but no block
|
||||
LL | bar; //~ ERROR expected `{`, found `bar`
|
||||
| ^^^-
|
||||
| |
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue