Extract method for requiring crate features
authorDirkjan Ochtman <dirkjan@ochtman.nl>
Mon, 2 Oct 2017 15:54:35 +0000 (17:54 +0200)
committerDirkjan Ochtman <dirkjan@ochtman.nl>
Mon, 30 Oct 2017 19:22:28 +0000 (20:22 +0100)
src/cargo/core/resolver/mod.rs

index 10092a563eededde07f189dfa5b722551543bb48..699ea5c66adb02a8000ade4614c713eb7b58e77f 100644 (file)
@@ -884,6 +884,13 @@ impl<'r> Requirements<'r> {
         }
     }
 
+    fn require_crate_feature(&mut self, package: &'r str, feat: &'r str) {
+        self.used.insert(package);
+        self.deps.entry(package)
+            .or_insert((false, Vec::new()))
+            .1.push(feat.to_string());
+    }
+
     fn add_feature(&mut self, feat: &'r str) -> CargoResult<()> {
         if feat.is_empty() { return Ok(()) }
 
@@ -896,11 +903,7 @@ impl<'r> Requirements<'r> {
         let feat_or_package = parts.next().unwrap();
         match parts.next() {
             Some(feat) => {
-                let package = feat_or_package;
-                self.used.insert(package);
-                self.deps.entry(package)
-                    .or_insert((false, Vec::new()))
-                    .1.push(feat.to_string());
+                self.require_crate_feature(feat_or_package, feat);
             }
             None => {
                 let feat = feat_or_package;