rust-lang/rust-clippy

Lint for Iterator + Copy

Open

#1,534 opened on Feb 13, 2017

 (1 comment) (0 reactions) (0 assignees)Rust (1,391 forks)batch import
A-lintE-mediumL-correctnessgood first issue

Repository metrics

Stars
 (10,406 stars)
PR merge metrics
 (PR metrics pending)

Description

Implementing Copy for iterators makes footguns, and the standard library settled not to do so for now.

let mut it = /* a Copy + Iterator */;
for x in it { if cond { break; } } // `it` copied here (forgot to `&mut it`)
let x = it.next(); // `it` is in the initial state

Clippy should have a lint that warns if "use of the original iterator after copied" is detected.

Contributor guide