mirror of
https://github.com/rust-lang/rust-clippy
synced 2024-11-10 23:24:24 +00:00
Auto merge of #11083 - sylvestre:autofix, r=dswij
[`semicolon_if_nothing_returned`]: add an autofix changelog: [`semicolon_if_nothing_returned`]: add an autofix
This commit is contained in:
commit
568ccf3fc8
4 changed files with 131 additions and 7 deletions
|
@ -43,7 +43,7 @@ impl<'tcx> LateLintPass<'tcx> for SemicolonIfNothingReturned {
|
|||
if let Some(expr) = block.expr;
|
||||
let t_expr = cx.typeck_results().expr_ty(expr);
|
||||
if t_expr.is_unit();
|
||||
let mut app = Applicability::MaybeIncorrect;
|
||||
let mut app = Applicability::MachineApplicable;
|
||||
if let snippet = snippet_with_context(cx, expr.span, block.span.ctxt(), "}", &mut app).0;
|
||||
if !snippet.ends_with('}') && !snippet.ends_with(';');
|
||||
if cx.sess().source_map().is_multiline(block.span);
|
||||
|
|
123
tests/ui/semicolon_if_nothing_returned.fixed
Normal file
123
tests/ui/semicolon_if_nothing_returned.fixed
Normal file
|
@ -0,0 +1,123 @@
|
|||
//@run-rustfix
|
||||
#![warn(clippy::semicolon_if_nothing_returned)]
|
||||
#![allow(clippy::redundant_closure, clippy::uninlined_format_args, clippy::needless_late_init)]
|
||||
|
||||
fn get_unit() {}
|
||||
|
||||
// the functions below trigger the lint
|
||||
fn main() {
|
||||
println!("Hello");
|
||||
}
|
||||
|
||||
fn hello() {
|
||||
get_unit();
|
||||
}
|
||||
|
||||
fn basic101(x: i32) {
|
||||
let y: i32;
|
||||
y = x + 1;
|
||||
}
|
||||
|
||||
#[rustfmt::skip]
|
||||
fn closure_error() {
|
||||
let _d = || {
|
||||
hello();
|
||||
};
|
||||
}
|
||||
|
||||
#[rustfmt::skip]
|
||||
fn unsafe_checks_error() {
|
||||
use std::mem::MaybeUninit;
|
||||
use std::ptr;
|
||||
|
||||
let mut s = MaybeUninit::<String>::uninit();
|
||||
let _d = || unsafe {
|
||||
ptr::drop_in_place(s.as_mut_ptr());
|
||||
};
|
||||
}
|
||||
|
||||
// this is fine
|
||||
fn print_sum(a: i32, b: i32) {
|
||||
println!("{}", a + b);
|
||||
assert_eq!(true, false);
|
||||
}
|
||||
|
||||
fn foo(x: i32) {
|
||||
let y: i32;
|
||||
if x < 1 {
|
||||
y = 4;
|
||||
} else {
|
||||
y = 5;
|
||||
}
|
||||
}
|
||||
|
||||
fn bar(x: i32) {
|
||||
let y: i32;
|
||||
match x {
|
||||
1 => y = 4,
|
||||
_ => y = 32,
|
||||
}
|
||||
}
|
||||
|
||||
fn foobar(x: i32) {
|
||||
let y: i32;
|
||||
'label: {
|
||||
y = x + 1;
|
||||
}
|
||||
}
|
||||
|
||||
fn loop_test(x: i32) {
|
||||
let y: i32;
|
||||
for &ext in &["stdout", "stderr", "fixed"] {
|
||||
println!("{}", ext);
|
||||
}
|
||||
}
|
||||
|
||||
fn closure() {
|
||||
let _d = || hello();
|
||||
}
|
||||
|
||||
#[rustfmt::skip]
|
||||
fn closure_block() {
|
||||
let _d = || { hello() };
|
||||
}
|
||||
|
||||
unsafe fn some_unsafe_op() {}
|
||||
unsafe fn some_other_unsafe_fn() {}
|
||||
|
||||
fn do_something() {
|
||||
unsafe { some_unsafe_op() };
|
||||
|
||||
unsafe { some_other_unsafe_fn() };
|
||||
}
|
||||
|
||||
fn unsafe_checks() {
|
||||
use std::mem::MaybeUninit;
|
||||
use std::ptr;
|
||||
|
||||
let mut s = MaybeUninit::<String>::uninit();
|
||||
let _d = || unsafe { ptr::drop_in_place(s.as_mut_ptr()) };
|
||||
}
|
||||
|
||||
// Issue #7768
|
||||
#[rustfmt::skip]
|
||||
fn macro_with_semicolon() {
|
||||
macro_rules! repro {
|
||||
() => {
|
||||
while false {
|
||||
}
|
||||
};
|
||||
}
|
||||
repro!();
|
||||
}
|
||||
|
||||
fn function_returning_option() -> Option<i32> {
|
||||
Some(1)
|
||||
}
|
||||
|
||||
// No warning
|
||||
fn let_else_stmts() {
|
||||
let Some(x) = function_returning_option() else {
|
||||
return;
|
||||
};
|
||||
}
|
|
@ -1,5 +1,6 @@
|
|||
//@run-rustfix
|
||||
#![warn(clippy::semicolon_if_nothing_returned)]
|
||||
#![allow(clippy::redundant_closure, clippy::uninlined_format_args)]
|
||||
#![allow(clippy::redundant_closure, clippy::uninlined_format_args, clippy::needless_late_init)]
|
||||
|
||||
fn get_unit() {}
|
||||
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
error: consider adding a `;` to the last statement for consistent formatting
|
||||
--> $DIR/semicolon_if_nothing_returned.rs:8:5
|
||||
--> $DIR/semicolon_if_nothing_returned.rs:9:5
|
||||
|
|
||||
LL | println!("Hello")
|
||||
| ^^^^^^^^^^^^^^^^^ help: add a `;` here: `println!("Hello");`
|
||||
|
@ -7,25 +7,25 @@ LL | println!("Hello")
|
|||
= note: `-D clippy::semicolon-if-nothing-returned` implied by `-D warnings`
|
||||
|
||||
error: consider adding a `;` to the last statement for consistent formatting
|
||||
--> $DIR/semicolon_if_nothing_returned.rs:12:5
|
||||
--> $DIR/semicolon_if_nothing_returned.rs:13:5
|
||||
|
|
||||
LL | get_unit()
|
||||
| ^^^^^^^^^^ help: add a `;` here: `get_unit();`
|
||||
|
||||
error: consider adding a `;` to the last statement for consistent formatting
|
||||
--> $DIR/semicolon_if_nothing_returned.rs:17:5
|
||||
--> $DIR/semicolon_if_nothing_returned.rs:18:5
|
||||
|
|
||||
LL | y = x + 1
|
||||
| ^^^^^^^^^ help: add a `;` here: `y = x + 1;`
|
||||
|
||||
error: consider adding a `;` to the last statement for consistent formatting
|
||||
--> $DIR/semicolon_if_nothing_returned.rs:23:9
|
||||
--> $DIR/semicolon_if_nothing_returned.rs:24:9
|
||||
|
|
||||
LL | hello()
|
||||
| ^^^^^^^ help: add a `;` here: `hello();`
|
||||
|
||||
error: consider adding a `;` to the last statement for consistent formatting
|
||||
--> $DIR/semicolon_if_nothing_returned.rs:34:9
|
||||
--> $DIR/semicolon_if_nothing_returned.rs:35:9
|
||||
|
|
||||
LL | ptr::drop_in_place(s.as_mut_ptr())
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: add a `;` here: `ptr::drop_in_place(s.as_mut_ptr());`
|
||||
|
|
Loading…
Reference in a new issue