Improve error messages
authorYehuda Katz <wycats@gmail.com>
Sun, 22 Jun 2014 06:16:12 +0000 (23:16 -0700)
committerYehuda Katz <wycats@gmail.com>
Sun, 22 Jun 2014 06:16:12 +0000 (23:16 -0700)
libs/hammer.rs
src/cargo/core/resolver.rs
src/cargo/lib.rs
src/cargo/ops/cargo_compile.rs

index 6c442daa3550d791333c4e382587d63fd12c89d2..ea9e456ef5e0dbc5dc2e071f33622e9fc917a918 160000 (submodule)
@@ -1 +1 @@
-Subproject commit 6c442daa3550d791333c4e382587d63fd12c89d2
+Subproject commit ea9e456ef5e0dbc5dc2e071f33622e9fc917a918
index 010bff29cb50711d5e05324c724f9f74c6a5044c..09d374445a8c6a3064b1de76d455de221405e84f 100644 (file)
@@ -6,7 +6,8 @@ use core::{
     Summary,
     Registry
 };
-use util::errors::CargoResult;
+
+use util::{CargoResult, human, internal};
 
 /* TODO:
  * - The correct input here is not a registry. Resolves should be performable
@@ -33,9 +34,13 @@ pub fn resolve<R: Registry>(deps: &[Dependency],
 
         let opts = try!(registry.query(&curr));
 
-        assert!(opts.len() > 0, "no matches for {}", curr.get_name());
-        // Temporary, but we must have exactly one option to satisfy the dep
-        assert!(opts.len() == 1, "invalid num of results {}", opts.len());
+        if opts.len() == 0 {
+            return Err(human(format!("No package named {} found", curr.get_name())));
+        }
+
+        if opts.len() > 1 {
+            return Err(internal("Temporarily, Cargo only supports a single result for a dependency"))
+        }
 
         let pkg = opts.get(0).clone();
         resolve.insert(pkg.get_name().to_str(), pkg.clone());
index ec9d8afa93916a3c10f6f522d43237cc81af4617..ec1cd899797e42304d2441e3c1bc47378c9023fc 100644 (file)
@@ -211,7 +211,7 @@ pub fn handle_error(err: CliError, shell: &mut MultiShell) {
         let _ = shell.error(error.to_str());
     }
 
-    if unknown {
+    if error.cause().is_some() {
         let _ = shell.concise(|shell| {
             shell.err().say("\nTo learn more, run the command again with --verbose.", BLACK)
         });
index 416961bfe07013263b01c3ece6aded2faec6ef9a..cf94f186a516c7102385f89a3aa66283c9b7e9b4 100644 (file)
@@ -46,14 +46,14 @@ pub fn compile(manifest_path: &Path, shell: &mut MultiShell) -> CargoResult<()>
     let source_ids = package.get_source_ids();
 
     let packages = {
-        let mut registry = try!(PackageRegistry::new(source_ids, override_ids, shell));
-        let resolved = try!(resolver::resolve(package.get_dependencies(),
-                                              &mut registry).wrap({
-            human("unable to resolve dependencies")
-        }));
+        let mut registry =
+            try!(PackageRegistry::new(source_ids, override_ids, shell));
+
+        let resolved =
+            try!(resolver::resolve(package.get_dependencies(), &mut registry));
 
         try!(registry.get(resolved.as_slice()).wrap({
-            human("unable to get packages from source")
+            human("Unable to get packages from source")
         }))
     };