From 698f8c2f01ea549d77d7dc3338a12e04c11057b9 Mon Sep 17 00:00:00 2001 From: Daniel Baumann Date: Wed, 17 Apr 2024 14:02:58 +0200 Subject: Adding upstream version 1.64.0+dfsg1. Signed-off-by: Daniel Baumann --- .../clippy/tests/ui/suspicious_else_formatting.rs | 115 +++++++++++++++++++++ 1 file changed, 115 insertions(+) create mode 100644 src/tools/clippy/tests/ui/suspicious_else_formatting.rs (limited to 'src/tools/clippy/tests/ui/suspicious_else_formatting.rs') diff --git a/src/tools/clippy/tests/ui/suspicious_else_formatting.rs b/src/tools/clippy/tests/ui/suspicious_else_formatting.rs new file mode 100644 index 000000000..21753e5dc --- /dev/null +++ b/src/tools/clippy/tests/ui/suspicious_else_formatting.rs @@ -0,0 +1,115 @@ +// aux-build:proc_macro_suspicious_else_formatting.rs + +#![warn(clippy::suspicious_else_formatting)] +#![allow(clippy::if_same_then_else, clippy::let_unit_value)] + +extern crate proc_macro_suspicious_else_formatting; +use proc_macro_suspicious_else_formatting::DeriveBadSpan; + +fn foo() -> bool { + true +} + +#[rustfmt::skip] +fn main() { + // weird `else` formatting: + if foo() { + } { + } + + if foo() { + } if foo() { + } + + let _ = { // if as the last expression + let _ = 0; + + if foo() { + } if foo() { + } + else { + } + }; + + let _ = { // if in the middle of a block + if foo() { + } if foo() { + } + else { + } + + let _ = 0; + }; + + if foo() { + } else + { + } + + // This is fine, though weird. Allman style braces on the else. + if foo() { + } + else + { + } + + if foo() { + } else + if foo() { // the span of the above error should continue here + } + + if foo() { + } + else + if foo() { // the span of the above error should continue here + } + + // those are ok: + if foo() { + } + { + } + + if foo() { + } else { + } + + if foo() { + } + else { + } + + if foo() { + } + if foo() { + } + + // Almost Allman style braces. Lint these. + if foo() { + } + + else + { + + } + + if foo() { + } + else + + { + + } + + // #3864 - Allman style braces + if foo() + { + } + else + { + } +} + +// #7650 - Don't lint. Proc-macro using bad spans for `if` expressions. +#[derive(DeriveBadSpan)] +struct _Foo(u32, u32); -- cgit v1.2.3