Skip to content

iter_with_drain suggestion causes lifetime/ownership error #15119

Open
@BenjaminBrienen

Description

@BenjaminBrienen

Summary

Due to a lifetime issue, the suggestion doesn't compile.

Reproducer

fn foo() {
    let mut current = vec![];
    while !current.is_empty() {
        current.drain(..).for_each(|_: ()| {});
    }
}

becomes

fn foo() {
    let mut current = vec![];
    while !current.is_empty() { // borrow of moved value: `current`
        current.into_iter().for_each(|_: ()| {});
    }
}

Version

rustc 1.87.0 (17067e9ac 2025-05-09)
binary: rustc
commit-hash: 17067e9ac6d7ecb70e50f92c1944e545188d2359
commit-date: 2025-05-09
host: x86_64-unknown-linux-gnu
release: 1.87.0
LLVM version: 20.1.1

Additional Labels

@rustbot I-suggestion-causes-error

Metadata

Metadata

Assignees

No one assigned

    Labels

    C-bugCategory: Clippy is not doing the correct thing

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions