rspec/rules/S7456/rust/rule.adoc
2025-03-26 13:40:33 +01:00

27 lines
811 B
Plaintext

== Why is this an issue?
Using `.skip(0)` on an iterator does nothing, which is likely to be a mistake. It is more probable that `.skip(1)` was intended to skip the first element, or if not, the `.skip(0)` call should be removed to avoid confusion and make the code clearer.
=== Code examples
==== Noncompliant code example
[source,rust,diff-id=1,diff-type=noncompliant]
----
let v = vec![1, 2, 3];
let x = v.iter().skip(0).collect::<Vec<_>>(); // Noncompliant: .skip(0) does nothing
----
==== Compliant solution
[source,rust,diff-id=1,diff-type=compliant]
----
let v = vec![1, 2, 3];
let x = v.iter().collect::<Vec<_>>(); // Compliant: No .skip(0) call makes the intent clear
----
== Resources
=== Documentation
* Clippy Lints - https://rust-lang.github.io/rust-clippy/master/index.html#iter_skip_zero