Skip to content

Commit 027977c

Browse files
author
Jon Gjengset
committed
Make ResolveOpts::new take RequestedFeatures
1 parent ee286bc commit 027977c

File tree

6 files changed

+20
-35
lines changed

6 files changed

+20
-35
lines changed

src/cargo/core/compiler/standard_lib.rs

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
use crate::core::compiler::UnitInterner;
44
use crate::core::compiler::{CompileKind, CompileMode, RustcTargetData, Unit};
55
use crate::core::profiles::{Profiles, UnitFor};
6-
use crate::core::resolver::features::{FeaturesFor, ResolvedFeatures};
6+
use crate::core::resolver::features::{FeaturesFor, RequestedFeatures, ResolvedFeatures};
77
use crate::core::resolver::{HasDevUnits, ResolveOpts};
88
use crate::core::{Dependency, PackageId, PackageSet, Resolve, SourceId, Workspace};
99
use crate::ops::{self, Packages};
@@ -109,8 +109,10 @@ pub fn resolve_std<'cfg>(
109109
};
110110
// dev_deps setting shouldn't really matter here.
111111
let opts = ResolveOpts::new(
112-
/*dev_deps*/ false, &features, /*all_features*/ false,
113-
/*uses_default_features*/ false,
112+
/*dev_deps*/ false,
113+
RequestedFeatures::from_command_line(
114+
&features, /*all_features*/ false, /*uses_default_features*/ false,
115+
),
114116
);
115117
let resolve = ops::resolve_ws_with_opts(
116118
&std_ws,

src/cargo/core/resolver/types.rs

Lines changed: 2 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -147,20 +147,8 @@ impl ResolveOpts {
147147
}
148148
}
149149

150-
pub fn new(
151-
dev_deps: bool,
152-
features: &[String],
153-
all_features: bool,
154-
uses_default_features: bool,
155-
) -> ResolveOpts {
156-
ResolveOpts {
157-
dev_deps,
158-
features: RequestedFeatures::from_command_line(
159-
features,
160-
all_features,
161-
uses_default_features,
162-
),
163-
}
150+
pub fn new(dev_deps: bool, features: RequestedFeatures) -> ResolveOpts {
151+
ResolveOpts { dev_deps, features }
164152
}
165153
}
166154

src/cargo/ops/cargo_compile.rs

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ use crate::core::compiler::{BuildConfig, BuildContext, Compilation, Context};
3333
use crate::core::compiler::{CompileKind, CompileMode, CompileTarget, RustcTargetData, Unit};
3434
use crate::core::compiler::{DefaultExecutor, Executor, UnitInterner};
3535
use crate::core::profiles::{Profiles, UnitFor};
36-
use crate::core::resolver::features::{self, FeaturesFor};
36+
use crate::core::resolver::features::{self, FeaturesFor, RequestedFeatures};
3737
use crate::core::resolver::{HasDevUnits, Resolve, ResolveOpts};
3838
use crate::core::{FeatureValue, Package, PackageSet, Shell, Summary, Target};
3939
use crate::core::{PackageId, PackageIdSpec, TargetKind, Workspace};
@@ -336,7 +336,10 @@ pub fn create_bcx<'a, 'cfg>(
336336

337337
let specs = spec.to_package_id_specs(ws)?;
338338
let dev_deps = ws.require_optional_deps() || filter.need_dev_deps(build_config.mode);
339-
let opts = ResolveOpts::new(dev_deps, features, all_features, !no_default_features);
339+
let opts = ResolveOpts::new(
340+
dev_deps,
341+
RequestedFeatures::from_command_line(features, all_features, !no_default_features),
342+
);
340343
let has_dev_units = if filter.need_dev_deps(build_config.mode) {
341344
HasDevUnits::Yes
342345
} else {

src/cargo/ops/cargo_doc.rs

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
use crate::core::compiler::RustcTargetData;
2-
use crate::core::resolver::{HasDevUnits, ResolveOpts};
2+
use crate::core::resolver::{features::RequestedFeatures, HasDevUnits, ResolveOpts};
33
use crate::core::{Shell, Workspace};
44
use crate::ops;
55
use crate::util::CargoResult;
@@ -21,9 +21,11 @@ pub fn doc(ws: &Workspace<'_>, options: &DocOptions) -> CargoResult<()> {
2121
let specs = options.compile_opts.spec.to_package_id_specs(ws)?;
2222
let opts = ResolveOpts::new(
2323
/*dev_deps*/ true,
24-
&options.compile_opts.features,
25-
options.compile_opts.all_features,
26-
!options.compile_opts.no_default_features,
24+
RequestedFeatures::from_command_line(
25+
&options.compile_opts.features,
26+
options.compile_opts.all_features,
27+
!options.compile_opts.no_default_features,
28+
),
2729
);
2830
let target_data = RustcTargetData::new(ws, &options.compile_opts.build_config.requested_kinds)?;
2931
let ws_resolve = ops::resolve_ws_with_opts(

src/cargo/ops/cargo_output_metadata.rs

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -120,12 +120,7 @@ fn build_resolve_graph(
120120
metadata_opts.all_features,
121121
!metadata_opts.no_default_features,
122122
);
123-
let resolve_opts = ResolveOpts::new(
124-
/*dev_deps*/ true,
125-
&metadata_opts.features,
126-
metadata_opts.all_features,
127-
!metadata_opts.no_default_features,
128-
);
123+
let resolve_opts = ResolveOpts::new(/*dev_deps*/ true, requested_features.clone());
129124
let force_all = if metadata_opts.filter_platforms.is_empty() {
130125
crate::core::resolver::features::ForceAllTargets::Yes
131126
} else {

src/cargo/ops/tree/mod.rs

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -143,12 +143,7 @@ pub fn build_and_print(ws: &Workspace<'_>, opts: &TreeOptions) -> CargoResult<()
143143
opts.all_features,
144144
!opts.no_default_features,
145145
);
146-
let resolve_opts = ResolveOpts::new(
147-
/*dev_deps*/ true,
148-
&opts.features,
149-
opts.all_features,
150-
!opts.no_default_features,
151-
);
146+
let resolve_opts = ResolveOpts::new(/*dev_deps*/ true, requested_features.clone());
152147
let has_dev = if opts
153148
.edge_kinds
154149
.contains(&EdgeKind::Dep(DepKind::Development))

0 commit comments

Comments
 (0)