diff --git a/crates/uv/src/commands/pip/compile.rs b/crates/uv/src/commands/pip/compile.rs index fa0f2f429..b0dc0d977 100644 --- a/crates/uv/src/commands/pip/compile.rs +++ b/crates/uv/src/commands/pip/compile.rs @@ -528,15 +528,16 @@ fn cmd( // Skip any `--find-links` URLs, unless requested. if !include_find_links { - if arg.starts_with("--find-links=") || arg.starts_with("-f") { - // Reset state; skip this iteration. - *skip_next = None; + // Always skip the `--find-links` and mark the next item to be skipped + if arg == "--find-links" || arg == "-f" { + *skip_next = Some(true); return Some(None); } - // Mark the next item as (to be) skipped. - if arg == "--find-links" || arg == "-f" { - *skip_next = Some(true); + // Skip only this argument if option and value are together + if arg.starts_with("--find-links=") || arg.starts_with("-f") { + // Reset state; skip this iteration. + *skip_next = None; return Some(None); } } @@ -547,16 +548,16 @@ fn cmd( return Some(None); } - // Always skip the `--upgrade-package` flag - if arg.starts_with("--upgrade-package=") || arg.starts_with("-P") { - // Reset state; skip this iteration. - *skip_next = None; + // Always skip the `--upgrade-package` and mark the next item to be skipped + if arg == "--upgrade-package" || arg == "-P" { + *skip_next = Some(true); return Some(None); } - // Mark the next item as (to be) skipped. - if arg == "--upgrade-package" || arg == "-P" { - *skip_next = Some(true); + // Skip only this argument if option and value are together + if arg.starts_with("--upgrade-package=") || arg.starts_with("-P") { + // Reset state; skip this iteration. + *skip_next = None; return Some(None); } diff --git a/crates/uv/tests/pip_compile.rs b/crates/uv/tests/pip_compile.rs index 51f7f9a9d..cbdac0d01 100644 --- a/crates/uv/tests/pip_compile.rs +++ b/crates/uv/tests/pip_compile.rs @@ -4807,7 +4807,7 @@ fn upgrade_constraint() -> Result<()> { .arg("requirements.in") .arg("--output-file") .arg("requirements.txt") - .arg("--upgrade-package") + .arg("-P") .arg("iniconfig"), @r###" success: true exit_code: 0