Skip to content

Commit e122315

Browse files
committed
also detect yanked deps when fetching deps
not only when generating lockfile
1 parent fbbbc8f commit e122315

File tree

1 file changed

+8
-3
lines changed

1 file changed

+8
-3
lines changed

src/prepare.rs

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -157,6 +157,7 @@ pub(crate) fn fetch_deps(
157157
source_dir: &Path,
158158
fetch_build_std_targets: &[&str],
159159
) -> anyhow::Result<()> {
160+
let mut yanked_deps = false;
160161
let mut missing_deps = false;
161162
let mut broken_deps = false;
162163
let mut cmd = Command::new(workspace, toolchain.cargo())
@@ -174,10 +175,11 @@ pub(crate) fn fetch_deps(
174175

175176
match cmd
176177
.process_lines(&mut |line, _| {
177-
if line.contains("failed to load source for dependency") {
178+
if line.contains("failed to select a version for the requirement") {
179+
yanked_deps = true;
180+
} else if line.contains("failed to load source for dependency") {
178181
missing_deps = true;
179-
}
180-
if line.contains("failed to parse manifest at")
182+
} else if line.contains("failed to parse manifest at")
181183
|| line.contains("error: invalid table header")
182184
{
183185
broken_deps = true;
@@ -186,6 +188,9 @@ pub(crate) fn fetch_deps(
186188
.run_capture()
187189
{
188190
Ok(_) => Ok(()),
191+
Err(CommandError::ExecutionFailed { status: _, stderr }) if yanked_deps => {
192+
Err(PrepareError::YankedDependencies(stderr).into())
193+
}
189194
Err(CommandError::ExecutionFailed { status: _, stderr }) if missing_deps => {
190195
Err(PrepareError::MissingDependencies(stderr).into())
191196
}

0 commit comments

Comments
 (0)