]> git.ipfire.org Git - thirdparty/gcc.git/commit
gccrs: implement unused variable checker on HIR.
authorRyutaro Okada <1015ryu88@gmail.com>
Sun, 10 Aug 2025 02:24:56 +0000 (19:24 -0700)
committerArthur Cohen <arthur.cohen@embecosm.com>
Tue, 23 Dec 2025 11:16:48 +0000 (12:16 +0100)
commitff407338c8d64c13c5f8ab3c197c0506b09f8b13
tree0eb350e3da9fa342f92510c5b3ec088c99a40d3f
parent9551da9129b152a43657e83fa9c4a992df7863ff
gccrs: implement unused variable checker on HIR.

This change moves the unused variable checker from the type resolver
to HIR. We can now use the HIR Default Visitor, and it will be much more
easier to implement other unused lints with this change.

gcc/rust/ChangeLog:

* Make-lang.in: Add new files rules in Makefile.
* lang.opt: Add new flag.
* rust-session-manager.cc (Session::compile_crate): Execute new variable checker.
* checks/lints/unused-var/rust-unused-var-checker.cc (UnusedVarChecker): Implement unused
variable checker.
* checks/lints/unused-var/rust-unused-var-checker.h (UnusedVarChecker): Implement unused
variable checker.
* checks/lints/unused-var/rust-unused-var-collector.cc (UnusedVarCollector): Implement
unused variable collector.
* checks/lints/unused-var/rust-unused-var-collector.h (UnusedVarCollector): Implement
unused variable collector.
* checks/lints/unused-var/rust-unused-var-context.cc (UnusedVarContext): Implement
unused variable context.
* checks/lints/unused-var/rust-unused-var-context.h (UnusedVarContext): Implement unused
variable context.

gcc/testsuite/ChangeLog:

* rust/compile/static_item_0.rs: New test.
* rust/compile/template_function_0.rs: New test.

Signed-off-by: Lucas Ly Ba <lucas.ly-ba@outlook.com>
gcc/rust/Make-lang.in
gcc/rust/checks/lints/unused-var/rust-unused-var-checker.cc [new file with mode: 0644]
gcc/rust/checks/lints/unused-var/rust-unused-var-checker.h [new file with mode: 0644]
gcc/rust/checks/lints/unused-var/rust-unused-var-collector.cc [new file with mode: 0644]
gcc/rust/checks/lints/unused-var/rust-unused-var-collector.h [new file with mode: 0644]
gcc/rust/checks/lints/unused-var/rust-unused-var-context.cc [new file with mode: 0644]
gcc/rust/checks/lints/unused-var/rust-unused-var-context.h [new file with mode: 0644]
gcc/rust/lang.opt
gcc/rust/rust-session-manager.cc
gcc/testsuite/rust/compile/static_item_0.rs [new file with mode: 0644]
gcc/testsuite/rust/compile/template_function_0.rs [new file with mode: 0644]