From: Dirkjan Ochtman Date: Mon, 2 Oct 2017 09:00:18 +0000 (+0200) Subject: Keep track of namespaced-features flag in Summary objects X-Git-Tag: archive/raspbian/0.35.0-2+rpi1~3^2^2^2^2^2^2^2~22^2~1^2~36^2~4 X-Git-Url: https://dgit.raspbian.org/?a=commitdiff_plain;h=a9f163e390377105b7ecf3a29a05f9631f898e3a;p=cargo.git Keep track of namespaced-features flag in Summary objects For now, all Summaries from a registry have it set to false. --- diff --git a/src/cargo/core/summary.rs b/src/cargo/core/summary.rs index d51db6b88..cfe1407ed 100644 --- a/src/cargo/core/summary.rs +++ b/src/cargo/core/summary.rs @@ -26,6 +26,7 @@ struct Inner { features: FeatureMap, checksum: Option, links: Option, + namespaced_features: bool, } impl Summary { @@ -34,6 +35,7 @@ impl Summary { dependencies: Vec, features: BTreeMap>, links: Option, + namespaced_features: bool, ) -> CargoResult { for dep in dependencies.iter() { if features.get(&*dep.name()).is_some() { @@ -58,6 +60,7 @@ impl Summary { features: feature_map, checksum: None, links: links.map(|l| InternedString::new(&l)), + namespaced_features, }), }) } @@ -86,6 +89,9 @@ impl Summary { pub fn links(&self) -> Option { self.inner.links } + pub fn namespaced_features(&self) -> bool { + self.inner.namespaced_features + } pub fn override_id(mut self, id: PackageId) -> Summary { Rc::make_mut(&mut self.inner).package_id = id; diff --git a/src/cargo/sources/registry/index.rs b/src/cargo/sources/registry/index.rs index f201250c0..a8e887d96 100644 --- a/src/cargo/sources/registry/index.rs +++ b/src/cargo/sources/registry/index.rs @@ -153,7 +153,7 @@ impl<'cfg> RegistryIndex<'cfg> { let deps = deps.into_iter() .map(|dep| dep.into_dep(&self.source_id)) .collect::>>()?; - let summary = Summary::new(pkgid, deps, features, links)?; + let summary = Summary::new(pkgid, deps, features, links, false)?; let summary = summary.set_checksum(cksum.clone()); if self.hashes.contains_key(&name[..]) { self.hashes.get_mut(&name[..]).unwrap().insert(vers, cksum); diff --git a/src/cargo/util/toml/mod.rs b/src/cargo/util/toml/mod.rs index da390b4a6..5ef05ad00 100644 --- a/src/cargo/util/toml/mod.rs +++ b/src/cargo/util/toml/mod.rs @@ -845,6 +845,7 @@ impl TomlManifest { deps, me.features.clone().unwrap_or_else(BTreeMap::new), project.links.clone(), + project.namespaced_features.unwrap_or(false), )?; let metadata = ManifestMetadata { description: project.description.clone(), diff --git a/tests/testsuite/resolve.rs b/tests/testsuite/resolve.rs index a8bf3545b..e6377a541 100644 --- a/tests/testsuite/resolve.rs +++ b/tests/testsuite/resolve.rs @@ -44,7 +44,7 @@ fn resolve_with_config( } } let mut registry = MyRegistry(registry); - let summary = Summary::new(pkg.clone(), deps, BTreeMap::new(), None).unwrap(); + let summary = Summary::new(pkg.clone(), deps, BTreeMap::new(), None, false).unwrap(); let method = Method::Everything; let resolve = resolver::resolve( &[(summary, method)], @@ -106,13 +106,13 @@ macro_rules! pkg { let pkgid = $pkgid.to_pkgid(); let link = if pkgid.name().ends_with("-sys") {Some(pkgid.name().to_string())} else {None}; - Summary::new(pkgid, d, BTreeMap::new(), link).unwrap() + Summary::new(pkgid, d, BTreeMap::new(), link, false).unwrap() }); ($pkgid:expr) => ({ let pkgid = $pkgid.to_pkgid(); let link = if pkgid.name().ends_with("-sys") {Some(pkgid.name().to_string())} else {None}; - Summary::new(pkgid, Vec::new(), BTreeMap::new(), link).unwrap() + Summary::new(pkgid, Vec::new(), BTreeMap::new(), link, false).unwrap() }) } @@ -127,7 +127,7 @@ fn pkg(name: &str) -> Summary { } else { None }; - Summary::new(pkg_id(name), Vec::new(), BTreeMap::new(), link).unwrap() + Summary::new(pkg_id(name), Vec::new(), BTreeMap::new(), link, false).unwrap() } fn pkg_id(name: &str) -> PackageId { @@ -148,7 +148,13 @@ fn pkg_loc(name: &str, loc: &str) -> Summary { } else { None }; - Summary::new(pkg_id_loc(name, loc), Vec::new(), BTreeMap::new(), link).unwrap() + Summary::new( + pkg_id_loc(name, loc), + Vec::new(), + BTreeMap::new(), + link, + false, + ).unwrap() } fn dep(name: &str) -> Dependency {