Create rule S905: Non-empty statements should change control flow or have at least one side-effect (#4698)

* Add rust to rule S905

* Update RSPEC

* Remove tag

---------

Co-authored-by: yassin-kammoun-sonarsource <yassin-kammoun-sonarsource@users.noreply.github.com>
Co-authored-by: yassin-kammoun-sonarsource <yassin.kammoun@sonarsource.com>
This commit is contained in:
github-actions[bot] 2025-03-19 13:38:43 +00:00 committed by GitHub
parent 8d3cf1eee3
commit e34bf94e7d
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 72 additions and 0 deletions

View File

@ -0,0 +1,7 @@
{
"tags": [
"cwe",
"unused",
"clippy"
]
}

65
rules/S905/rust/rule.adoc Normal file
View File

@ -0,0 +1,65 @@
include::../summary.adoc[]
== Why is this an issue?
include::../description.adoc[]
=== Exceptions
The rule does not raise an issue on statements containing only a semicolon (``++;++``).
== How to fix it
include::../how-to-fix.adoc[]
=== Code examples
==== Noncompliant code example
[source,rust,diff-id=1,diff-type=noncompliant]
----
fn get_result() -> i32 {
let mut result = 42;
if should_be_zero() {
result == 0; // Noncompliant: no side effect, was an assignment intended?
}
result
}
----
==== Compliant solution
[source,rust,diff-id=1,diff-type=compliant]
----
fn get_result() -> i32 {
let mut result = 42;
if should_be_zero() {
result = 0; // Compliant
}
result
}
----
include::../see.adoc[]
=== Documentation
* Clippy Lints - https://rust-lang.github.io/rust-clippy/master/index.html#no_effect
ifdef::env-github,rspecator-view[]
'''
== Implementation Specification
(visible only on this page)
include::../message.adoc[]
'''
== Comments And Links
(visible only on this page)
include::../comments-and-links.adoc[]
endif::env-github,rspecator-view[]