found a way to reuse SourceId::for_path in SourceId::from_cwd
authorDale Wijnand <dale.wijnand@gmail.com>
Tue, 10 Apr 2018 07:16:57 +0000 (08:16 +0100)
committerDale Wijnand <dale.wijnand@gmail.com>
Tue, 10 Apr 2018 07:16:57 +0000 (08:16 +0100)
src/cargo/core/source/source_id.rs

index 7bf6e63fca1a9efba5b9df6719691562ec6a5c1b..784107c213bdda607c92cc3c8452c3cdc776eb39 100644 (file)
@@ -171,15 +171,13 @@ impl SourceId {
     ///
     /// Pass absolute path
     pub fn from_cwd(path: &Path) -> CargoResult<SourceId> {
-        let url = path.to_url()?;
+        let source_id = SourceId::for_path(path)?;
+        let source_id = Arc::try_unwrap(source_id.inner)
+            .map_err(|_| format_err!("failed to create SourceId from cwd `{}`", path.display()))?;
         Ok(SourceId {
             inner: Arc::new(SourceIdInner {
-                kind: Kind::Path,
-                canonical_url: git::canonicalize_url(&url)?,
-                url,
-                precise: None,
-                name: None,
                 from_cwd: true,
+                ..source_id
             }),
         })
     }