Skip to content

Commit 2a9f9ac

Browse files
committed
Factor query_dependency out of resolve_dependency in cargo add
1 parent 20f6b2a commit 2a9f9ac

File tree

1 file changed

+13
-5
lines changed

1 file changed

+13
-5
lines changed

src/cargo/ops/cargo_add/mod.rs

Lines changed: 13 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -501,6 +501,17 @@ fn resolve_dependency(
501501
dependency = dependency.clear_version();
502502
}
503503

504+
let query = query_dependency(ws, gctx, &mut dependency)?;
505+
let dependency = populate_available_features(dependency, &query, registry)?;
506+
507+
Ok(dependency)
508+
}
509+
510+
fn query_dependency(
511+
ws: &Workspace<'_>,
512+
gctx: &GlobalContext,
513+
dependency: &mut Dependency,
514+
) -> Result<crate::core::Dependency, anyhow::Error> {
504515
let query = dependency.query(gctx)?;
505516
let query = match query {
506517
MaybeWorkspace::Workspace(_workspace) => {
@@ -511,7 +522,7 @@ fn resolve_dependency(
511522
ws.unstable_features(),
512523
)?;
513524
if let Some(features) = dep.features.clone() {
514-
dependency = dependency.set_inherited_features(features);
525+
*dependency = dependency.clone().set_inherited_features(features);
515526
}
516527
let query = dep.query(gctx)?;
517528
match query {
@@ -523,10 +534,7 @@ fn resolve_dependency(
523534
}
524535
MaybeWorkspace::Other(query) => query,
525536
};
526-
527-
let dependency = populate_available_features(dependency, &query, registry)?;
528-
529-
Ok(dependency)
537+
Ok(query)
530538
}
531539

532540
fn fuzzy_lookup(

0 commit comments

Comments
 (0)