delay calls to `to_inner`
authorEh2406 <YeomanYaacov@gmail.com>
Fri, 9 Mar 2018 16:47:10 +0000 (11:47 -0500)
committerEh2406 <YeomanYaacov@gmail.com>
Fri, 9 Mar 2018 16:47:10 +0000 (11:47 -0500)
src/cargo/core/manifest.rs
src/cargo/core/package.rs
src/cargo/core/registry.rs
src/cargo/core/summary.rs
src/cargo/ops/cargo_doc.rs
src/cargo/ops/cargo_install.rs
src/cargo/ops/cargo_run.rs
src/cargo/ops/cargo_rustc/compilation.rs

index f247b2a51f73ede325582f34829d2d24f8e4ba9c..739eab5c5096674fb745590ffec055007361b65b 100644 (file)
@@ -10,6 +10,7 @@ use url::Url;
 
 use core::{Dependency, PackageId, Summary, SourceId, PackageIdSpec};
 use core::{WorkspaceConfig, Epoch, Features, Feature};
+use core::interning::InternedString;
 use util::Config;
 use util::toml::TomlManifest;
 use util::errors::*;
@@ -301,7 +302,7 @@ impl Manifest {
     pub fn exclude(&self) -> &[String] { &self.exclude }
     pub fn include(&self) -> &[String] { &self.include }
     pub fn metadata(&self) -> &ManifestMetadata { &self.metadata }
-    pub fn name(&self) -> &str { self.package_id().name().to_inner() }
+    pub fn name(&self) -> InternedString { self.package_id().name() }
     pub fn package_id(&self) -> &PackageId { self.summary.package_id() }
     pub fn summary(&self) -> &Summary { &self.summary }
     pub fn targets(&self) -> &[Target] { &self.targets }
index 19c95e5fc100d900fa13c59ae47c61879efa9870..6fdc1f1ef27ce6550dbfa3bb8c373407616b07ba 100644 (file)
@@ -11,6 +11,7 @@ use lazycell::LazyCell;
 
 use core::{Dependency, Manifest, PackageId, SourceId, Target};
 use core::{Summary, SourceMap};
+use core::interning::InternedString;
 use ops;
 use util::{Config, internal, lev_distance};
 use util::errors::{CargoResult, CargoResultExt};
@@ -95,7 +96,7 @@ impl Package {
     /// Get the path to the manifest
     pub fn manifest_path(&self) -> &Path { &self.manifest_path }
     /// Get the name of the package
-    pub fn name(&self) -> &str { self.package_id().name().to_inner() }
+    pub fn name(&self) -> InternedString { self.package_id().name() }
     /// Get the PackageId object for the package (fully defines a package)
     pub fn package_id(&self) -> &PackageId { self.manifest.package_id() }
     /// Get the root folder of the package
index 211f90863d8927b8a62a03e0b2e7177f3d88eed6..56f6eed8528c1f420af5b4b70f1850bbe59af321 100644 (file)
@@ -519,7 +519,7 @@ fn lock(locked: &LockedMap,
         patches: &HashMap<Url, Vec<PackageId>>,
         summary: Summary) -> Summary {
     let pair = locked.get(summary.source_id()).and_then(|map| {
-        map.get(summary.name())
+        map.get(&*summary.name())
     }).and_then(|vec| {
         vec.iter().find(|&&(ref id, _)| id == summary.package_id())
     });
index 3fc2b1a6b1b723c92f85879914c4ba0ace013579..31aab456a4ef7e621bbdef47dd77326a00635387 100644 (file)
@@ -78,7 +78,7 @@ impl Summary {
     }
 
     pub fn package_id(&self) -> &PackageId { &self.inner.package_id }
-    pub fn name(&self) -> &str { self.package_id().name().to_inner() }
+    pub fn name(&self) -> InternedString { self.package_id().name() }
     pub fn version(&self) -> &Version { self.package_id().version() }
     pub fn source_id(&self) -> &SourceId { self.package_id().source_id() }
     pub fn dependencies(&self) -> &[Dependency] { &self.inner.dependencies }
index d747b42d0985c6e02b4a451725f89b65969b32c4..ed19b62405f7aad454a2d026644fc43259c26443 100644 (file)
@@ -54,7 +54,7 @@ pub fn doc(ws: &Workspace, options: &DocOptions) -> CargoResult<()> {
             bail!("Passing multiple packages and `open` is not supported.\n\
                    Please re-run this command with `-p <spec>` where `<spec>` \
                    is one of the following:\n  {}",
-                   pkgs.iter().map(|p| p.name()).collect::<Vec<_>>().join("\n  "));
+                   pkgs.iter().map(|p| p.name().to_inner()).collect::<Vec<_>>().join("\n  "));
         } else if pkgs.len() == 1 {
             pkgs[0].name().replace("-", "_")
         } else {
index 40037e74e4e3bbe26c386452d9480a295c704177..6dce40768db7343466a7e79177ecaec0ccddf358 100644 (file)
@@ -429,9 +429,9 @@ fn select_pkg<'a, T>(mut source: T,
             return Ok((pkg.clone(), Box::new(source)));
 
             fn multi_err(kind: &str, mut pkgs: Vec<&Package>) -> String {
-                pkgs.sort_by(|a, b| a.name().cmp(b.name()));
+                pkgs.sort_by(|a, b| a.name().cmp(&b.name()));
                 format!("multiple packages with {} found: {}", kind,
-                        pkgs.iter().map(|p| p.name()).collect::<Vec<_>>()
+                        pkgs.iter().map(|p| p.name().to_inner()).collect::<Vec<_>>()
                             .join(", "))
             }
         }
index 81ac7790844c5c15124a0ef11e403c35a6b05605..f4c6c71ad3e4a703698a46cd0e99812e2aea0345 100644 (file)
@@ -16,7 +16,7 @@ pub fn run(ws: &Workspace,
         Packages::Packages(xs) => match xs.len() {
             0 => ws.current()?,
             1 => ws.members()
-                .find(|pkg| pkg.name() == xs[0])
+                .find(|pkg| &*pkg.name() == xs[0])
                 .ok_or_else(||
                     format_err!("package `{}` is not a member of the workspace", xs[0])
                 )?,
index 7cb781e0f2da654e74460ac410dd07c11c07f800..e9e46cbe24ad9e8446363670ef3dfe16e2255606 100644 (file)
@@ -170,7 +170,7 @@ impl<'cfg> Compilation<'cfg> {
            .env("CARGO_PKG_VERSION_PATCH", &pkg.version().patch.to_string())
            .env("CARGO_PKG_VERSION_PRE", &pre_version_component(pkg.version()))
            .env("CARGO_PKG_VERSION", &pkg.version().to_string())
-           .env("CARGO_PKG_NAME", &pkg.name())
+           .env("CARGO_PKG_NAME", &*pkg.name())
            .env("CARGO_PKG_DESCRIPTION", metadata.description.as_ref().unwrap_or(&String::new()))
            .env("CARGO_PKG_HOMEPAGE", metadata.homepage.as_ref().unwrap_or(&String::new()))
            .env("CARGO_PKG_AUTHORS", &pkg.authors().join(":"))