diff --git a/src/tools/clippy/tests/ui/if_then_panic_core.fixed b/src/tools/clippy/tests/ui/if_then_panic_core.fixed new file mode 100644 index 0000000000000..2322fba398039 --- /dev/null +++ b/src/tools/clippy/tests/ui/if_then_panic_core.fixed @@ -0,0 +1,42 @@ +// run-rustfix +#![crate_type = "lib"] +#![no_std] +#![warn(clippy::if_then_panic)] + +pub fn main() { + let a = &[1, 2, 3]; + let c = Some(2); + if !a.is_empty() + && a.len() == 3 + && c != None + && !a.is_empty() + && a.len() == 3 + && !a.is_empty() + && a.len() == 3 + && !a.is_empty() + && a.len() == 3 + { + panic!("qaqaq{:?}", a); + } + assert!(a.is_empty(), "qaqaq{:?}", a); + assert!(a.is_empty(), "qwqwq"); + if a.len() == 3 { + format_args!("qwq"); + format_args!("qwq"); + format_args!("qwq"); + } + if let Some(b) = c { + panic!("orz {}", b); + } + if a.len() == 3 { + panic!("qaqaq"); + } else { + format_args!("qwq"); + } + let b = &[1, 2, 3]; + assert!(!b.is_empty(), "panic1"); + assert!(!(b.is_empty() && a.is_empty()), "panic2"); + assert!(!(a.is_empty() && !b.is_empty()), "panic3"); + assert!(!(b.is_empty() || a.is_empty()), "panic4"); + assert!(!(a.is_empty() || !b.is_empty()), "panic5"); +} diff --git a/src/tools/clippy/tests/ui/if_then_panic_core.rs b/src/tools/clippy/tests/ui/if_then_panic_core.rs new file mode 100644 index 0000000000000..fb7be9a25c19d --- /dev/null +++ b/src/tools/clippy/tests/ui/if_then_panic_core.rs @@ -0,0 +1,56 @@ +// run-rustfix +#![crate_type = "lib"] +#![no_std] +#![warn(clippy::if_then_panic)] + +pub fn main() { + let a = &[1, 2, 3]; + let c = Some(2); + if !a.is_empty() + && a.len() == 3 + && c != None + && !a.is_empty() + && a.len() == 3 + && !a.is_empty() + && a.len() == 3 + && !a.is_empty() + && a.len() == 3 + { + panic!("qaqaq{:?}", a); + } + if !a.is_empty() { + panic!("qaqaq{:?}", a); + } + if !a.is_empty() { + panic!("qwqwq"); + } + if a.len() == 3 { + format_args!("qwq"); + format_args!("qwq"); + format_args!("qwq"); + } + if let Some(b) = c { + panic!("orz {}", b); + } + if a.len() == 3 { + panic!("qaqaq"); + } else { + format_args!("qwq"); + } + let b = &[1, 2, 3]; + if b.is_empty() { + panic!("panic1"); + } + if b.is_empty() && a.is_empty() { + panic!("panic2"); + } + if a.is_empty() && !b.is_empty() { + panic!("panic3"); + } + if b.is_empty() || a.is_empty() { + panic!("panic4"); + } + if a.is_empty() || !b.is_empty() { + panic!("panic5"); + } +} diff --git a/src/tools/clippy/tests/ui/if_then_panic_core.stderr b/src/tools/clippy/tests/ui/if_then_panic_core.stderr new file mode 100644 index 0000000000000..688ed0b98a4a9 --- /dev/null +++ b/src/tools/clippy/tests/ui/if_then_panic_core.stderr @@ -0,0 +1,60 @@ +error: only a `panic!` in `if`-then statement + --> $DIR/if_then_panic_core.rs:21:5 + | +LL | / if !a.is_empty() { +LL | | panic!("qaqaq{:?}", a); +LL | | } + | |_____^ help: try: `assert!(a.is_empty(), "qaqaq{:?}", a);` + | + = note: `-D clippy::if-then-panic` implied by `-D warnings` + +error: only a `panic!` in `if`-then statement + --> $DIR/if_then_panic_core.rs:24:5 + | +LL | / if !a.is_empty() { +LL | | panic!("qwqwq"); +LL | | } + | |_____^ help: try: `assert!(a.is_empty(), "qwqwq");` + +error: only a `panic!` in `if`-then statement + --> $DIR/if_then_panic_core.rs:41:5 + | +LL | / if b.is_empty() { +LL | | panic!("panic1"); +LL | | } + | |_____^ help: try: `assert!(!b.is_empty(), "panic1");` + +error: only a `panic!` in `if`-then statement + --> $DIR/if_then_panic_core.rs:44:5 + | +LL | / if b.is_empty() && a.is_empty() { +LL | | panic!("panic2"); +LL | | } + | |_____^ help: try: `assert!(!(b.is_empty() && a.is_empty()), "panic2");` + +error: only a `panic!` in `if`-then statement + --> $DIR/if_then_panic_core.rs:47:5 + | +LL | / if a.is_empty() && !b.is_empty() { +LL | | panic!("panic3"); +LL | | } + | |_____^ help: try: `assert!(!(a.is_empty() && !b.is_empty()), "panic3");` + +error: only a `panic!` in `if`-then statement + --> $DIR/if_then_panic_core.rs:50:5 + | +LL | / if b.is_empty() || a.is_empty() { +LL | | panic!("panic4"); +LL | | } + | |_____^ help: try: `assert!(!(b.is_empty() || a.is_empty()), "panic4");` + +error: only a `panic!` in `if`-then statement + --> $DIR/if_then_panic_core.rs:53:5 + | +LL | / if a.is_empty() || !b.is_empty() { +LL | | panic!("panic5"); +LL | | } + | |_____^ help: try: `assert!(!(a.is_empty() || !b.is_empty()), "panic5");` + +error: aborting due to 7 previous errors +