diff --git a/src/cargo/ops/lockfile.rs b/src/cargo/ops/lockfile.rs index 4deb7d116..103876264 100644 --- a/src/cargo/ops/lockfile.rs +++ b/src/cargo/ops/lockfile.rs @@ -43,12 +43,10 @@ pub fn write_pkg_lockfile(ws: &Workspace, resolve: &Resolve) -> CargoResult<()> let mut out = String::new(); - if let Ok(ref orig) = orig { - if let Some(first_line) = orig.lines().into_iter().next() { - if first_line.starts_with("#") { - out.push_str(first_line); - out.push_str("\n"); - } + if let Ok(orig) = &orig { + for line in orig.lines().take_while(|line| line.starts_with("#")) { + out.push_str(line); + out.push_str("\n"); } } diff --git a/tests/testsuite/update.rs b/tests/testsuite/update.rs index 0b120daa9..be527b288 100644 --- a/tests/testsuite/update.rs +++ b/tests/testsuite/update.rs @@ -383,6 +383,7 @@ fn preserve_top_comment() { let mut lockfile = p.read_file("Cargo.lock"); lockfile.insert_str(0, "# @generated\n"); + lockfile.insert_str(0, "# some other comment\n"); println!("saving Cargo.lock contents:\n{}", lockfile); p.change_file("Cargo.lock", &lockfile);