Move edition earlier in TomlManifest::to_real_manifest
authorDale Wijnand <dale.wijnand@gmail.com>
Tue, 10 Apr 2018 07:22:29 +0000 (08:22 +0100)
committerDale Wijnand <dale.wijnand@gmail.com>
Fri, 20 Apr 2018 18:45:59 +0000 (19:45 +0100)
and fix a typo in the error message

src/cargo/util/toml/mod.rs
tests/testsuite/package.rs

index 7f20e979b4f3fc977279d9a108592353096095d0..bb9fb7b4de136bcc2aafdd61b9d853ec765a1c0a 100644 (file)
@@ -633,6 +633,19 @@ impl TomlManifest {
 
         let pkgid = project.to_package_id(source_id)?;
 
+        let edition = if let Some(ref edition) = project.rust {
+            features
+                .require(Feature::edition())
+                .chain_err(|| "editions are unstable")?;
+            if let Ok(edition) = edition.parse() {
+                edition
+            } else {
+                bail!("the `rust` key must be one of: `2015`, `2018`")
+            }
+        } else {
+            Edition::Edition2015
+        };
+
         // If we have no lib at all, use the inferred lib if available
         // If we have a lib with a path, we're done
         // If we have a lib with no path, use the inferred lib or_else package name
@@ -798,18 +811,6 @@ impl TomlManifest {
             None => false,
         };
 
-        let edition = if let Some(ref edition) = project.rust {
-            features
-                .require(Feature::edition())
-                .chain_err(|| "editiones are unstable")?;
-            if let Ok(edition) = edition.parse() {
-                edition
-            } else {
-                bail!("the `rust` key must be one of: `2015`, `2018`")
-            }
-        } else {
-            Edition::Edition2015
-        };
         let custom_metadata = project.metadata.clone();
         let mut manifest = Manifest::new(
             summary,
index 20e6821d3bba5bc572bb686591684344da5c704f..0a9845a20d674b752718755874fcafaa632ff581 100644 (file)
@@ -1220,7 +1220,7 @@ fn test_edition_nightly() {
 error: failed to parse manifest at `[..]`
 
 Caused by:
-  editiones are unstable
+  editions are unstable
 
 Caused by:
   feature `edition` is required