https://gcc.gnu.org/g:414d7946327e2b9c4b73b35b43024b1c411b5ced
commit r17-3110-g414d7946327e2b9c4b73b35b43024b1c411b5ced Author: Lucas Ly Ba <[email protected]> Date: Fri Jun 26 22:33:18 2026 +0200 gccrs: add unused braces lint gcc/rust/ChangeLog: * checks/lints/unused/rust-unused-checker.cc (UnusedChecker::visit): Warn on unnecessary braces around an assigned value. gcc/testsuite/ChangeLog: * rust/compile/unused-braces_0.rs: New test. Signed-off-by: Lucas Ly Ba <[email protected]> Diff: --- gcc/rust/checks/lints/unused/rust-unused-checker.cc | 9 +++++++++ gcc/testsuite/rust/compile/unused-braces_0.rs | 8 ++++++++ 2 files changed, 17 insertions(+) diff --git a/gcc/rust/checks/lints/unused/rust-unused-checker.cc b/gcc/rust/checks/lints/unused/rust-unused-checker.cc index 14e2df8dac87..2c521634d8b7 100644 --- a/gcc/rust/checks/lints/unused/rust-unused-checker.cc +++ b/gcc/rust/checks/lints/unused/rust-unused-checker.cc @@ -330,6 +330,15 @@ UnusedChecker::visit (HIR::LetStmt &stmt) "unused doc comment"); break; } + if (stmt.has_init_expr () + && stmt.get_init_expr ().get_expression_type () + == HIR::Expr::ExprType::Block) + { + auto &block = static_cast<HIR::BlockExpr &> (stmt.get_init_expr ()); + if (block.get_statements ().empty () && block.has_expr ()) + rust_warning_at (block.get_locus (), OPT_Wunused, + "unnecessary braces around assigned value"); + } walk (stmt); } diff --git a/gcc/testsuite/rust/compile/unused-braces_0.rs b/gcc/testsuite/rust/compile/unused-braces_0.rs new file mode 100644 index 000000000000..d1cd3bbdf95e --- /dev/null +++ b/gcc/testsuite/rust/compile/unused-braces_0.rs @@ -0,0 +1,8 @@ +// { dg-additional-options "-frust-unused-check-2.0" } +#![feature(no_core)] +#![no_core] + +pub fn foo() { + let _x = { 5 }; +// { dg-warning "unnecessary braces around assigned value" "" { target *-*-* } .-1 } +}
