rust-lang/rust-clippy

Lint for Iterator + Copy

Open

#1534 opened on Feb 13, 2017

View on GitHub
 (1 comment) (0 reactions) (0 assignees)Rust (10,406 stars) (1,391 forks)batch import
A-lintE-mediumL-correctnessgood first issue

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