rust-lang / rust-lang/rust-clippy

new lint: double reverse

Open
#3,416 3 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

A-lint S-needs-discussion
Dominant language
Rust
Stars
13.5k
Forks
2.2k
Avg merge
2d 10h
Merged PRs (30d)
32

Description

simple example:

let v: Vec<i32> = vec![4, 1, 4,3,5,6];
v.reverse();
v.reverse();
prinln!("{:?}", v);

example involving function:

pub fn main() {
   let mut v: Vec<i32> = vec![4, 1, 4,3,5,6];
   v.sort();
   let mut v2 = foo(v);
   v2.reverse();
   println!("{:?}", v2);
}

pub fn foo(a: Vec<i32>) -> Vec<i32> {
    let mut b = a;
    b.reverse();
    b
}

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

The issue names no source file, test, or entry point; begin with the two Rust examples and inspect existing Clippy lint patterns for method-call and cross-function analysis. Done means detecting the demonstrated consecutive reversals, including the function-return case, with tests covering the intended behavior.

Written by the indexing model from the issue text.

Assessment

Tech stack
rust
Domain
devtools, tooling
Issue type
Feature
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
38/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.