summaryrefslogtreecommitdiffstats
path: root/src/test/ui/lint/lint-unnecessary-parens.fixed
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-17 12:02:58 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-17 12:02:58 +0000
commit698f8c2f01ea549d77d7dc3338a12e04c11057b9 (patch)
tree173a775858bd501c378080a10dca74132f05bc50 /src/test/ui/lint/lint-unnecessary-parens.fixed
parentInitial commit. (diff)
downloadrustc-698f8c2f01ea549d77d7dc3338a12e04c11057b9.tar.xz
rustc-698f8c2f01ea549d77d7dc3338a12e04c11057b9.zip
Adding upstream version 1.64.0+dfsg1.upstream/1.64.0+dfsg1
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'src/test/ui/lint/lint-unnecessary-parens.fixed')
-rw-r--r--src/test/ui/lint/lint-unnecessary-parens.fixed81
1 files changed, 81 insertions, 0 deletions
diff --git a/src/test/ui/lint/lint-unnecessary-parens.fixed b/src/test/ui/lint/lint-unnecessary-parens.fixed
new file mode 100644
index 000000000..9c144324f
--- /dev/null
+++ b/src/test/ui/lint/lint-unnecessary-parens.fixed
@@ -0,0 +1,81 @@
+// run-rustfix
+
+#![deny(unused_parens)]
+#![allow(while_true)] // for rustfix
+
+#[derive(Eq, PartialEq)]
+struct X { y: bool }
+impl X {
+ fn foo(&self, conjunct: bool) -> bool { self.y && conjunct }
+}
+
+fn foo() -> isize {
+ return 1; //~ ERROR unnecessary parentheses around `return` value
+}
+fn bar(y: bool) -> X {
+ return X { y }; //~ ERROR unnecessary parentheses around `return` value
+}
+
+pub fn unused_parens_around_return_type() -> u32 { //~ ERROR unnecessary parentheses around type
+ panic!()
+}
+
+pub fn unused_parens_around_block_return() -> u32 {
+ let _foo = {
+ 5 //~ ERROR unnecessary parentheses around block return value
+ };
+ 5 //~ ERROR unnecessary parentheses around block return value
+}
+
+pub trait Trait {
+ fn test(&self);
+}
+
+pub fn passes_unused_parens_lint() -> &'static (dyn Trait) {
+ panic!()
+}
+
+macro_rules! baz {
+ ($($foo:expr),+) => {
+ ($($foo),*)
+ }
+}
+
+pub const CONST_ITEM: usize = 10; //~ ERROR unnecessary parentheses around assigned value
+pub static STATIC_ITEM: usize = 10; //~ ERROR unnecessary parentheses around assigned value
+
+fn main() {
+ foo();
+ bar(true); //~ ERROR unnecessary parentheses around function argument
+
+ if true {} //~ ERROR unnecessary parentheses around `if` condition
+ while true {} //~ ERROR unnecessary parentheses around `while` condition
+ match true { //~ ERROR unnecessary parentheses around `match` scrutinee expression
+ _ => {}
+ }
+ if let 1 = 1 {} //~ ERROR unnecessary parentheses around `let` scrutinee expression
+ while let 1 = 2 {} //~ ERROR unnecessary parentheses around `let` scrutinee expression
+ let v = X { y: false };
+ // struct lits needs parens, so these shouldn't warn.
+ if (v == X { y: true }) {}
+ if (X { y: true } == v) {}
+ if (X { y: false }.y) {}
+ // this shouldn't warn, because the parens are necessary to disambiguate let chains
+ if let true = (true && false) {}
+
+ while (X { y: false }.foo(true)) {}
+ while (true | X { y: false }.y) {}
+
+ match (X { y: false }) {
+ _ => {}
+ }
+
+ X { y: false }.foo(true); //~ ERROR unnecessary parentheses around method argument
+
+ let mut _a = 0; //~ ERROR unnecessary parentheses around assigned value
+ _a = 0; //~ ERROR unnecessary parentheses around assigned value
+ _a += 1; //~ ERROR unnecessary parentheses around assigned value
+
+ let _a = baz!(3, 4);
+ let _b = baz!(3);
+}