diff --git a/src/cargo/util/toml/mod.rs b/src/cargo/util/toml/mod.rs index 1c08a9ed799..72385396d48 100644 --- a/src/cargo/util/toml/mod.rs +++ b/src/cargo/util/toml/mod.rs @@ -982,116 +982,76 @@ pub fn to_real_manifest( } } - let mut deps = Vec::new(); - - let mut manifest_ctx = ManifestContext { - deps: &mut deps, - source_id, - gctx, - warnings, - platform: None, - root: package_root, - }; - - // Collect the dependencies. - validate_dependencies( - original_toml.dependencies.as_ref(), - None, - None, - manifest_ctx.warnings, - )?; - gather_dependencies(&mut manifest_ctx, resolved_toml.dependencies.as_ref(), None)?; + validate_dependencies(original_toml.dependencies.as_ref(), None, None, warnings)?; if original_toml.dev_dependencies.is_some() && original_toml.dev_dependencies2.is_some() { - warn_on_deprecated( - "dev-dependencies", - package_name, - "package", - manifest_ctx.warnings, - ); + warn_on_deprecated("dev-dependencies", package_name, "package", warnings); } validate_dependencies( original_toml.dev_dependencies(), None, Some(DepKind::Development), - manifest_ctx.warnings, - )?; - gather_dependencies( - &mut manifest_ctx, - resolved_toml.dev_dependencies(), - Some(DepKind::Development), + warnings, )?; if original_toml.build_dependencies.is_some() && original_toml.build_dependencies2.is_some() { - warn_on_deprecated( - "build-dependencies", - package_name, - "package", - manifest_ctx.warnings, - ); + warn_on_deprecated("build-dependencies", package_name, "package", warnings); } validate_dependencies( original_toml.build_dependencies(), None, Some(DepKind::Build), - manifest_ctx.warnings, - )?; - gather_dependencies( - &mut manifest_ctx, - resolved_toml.build_dependencies(), - Some(DepKind::Build), - )?; - - verify_lints( - resolved_toml.resolved_lints().expect("previously resolved"), - gctx, - manifest_ctx.warnings, + warnings, )?; - let default = manifest::TomlLints::default(); - let rustflags = lints_to_rustflags( - resolved_toml - .resolved_lints() - .expect("previously resolved") - .unwrap_or(&default), - ); - for (name, platform) in original_toml.target.iter().flatten() { let platform_kind: Platform = name.parse()?; - platform_kind.check_cfg_attributes(manifest_ctx.warnings); + platform_kind.check_cfg_attributes(warnings); let platform_kind = Some(platform_kind); validate_dependencies( platform.dependencies.as_ref(), platform_kind.as_ref(), None, - manifest_ctx.warnings, + warnings, )?; if platform.build_dependencies.is_some() && platform.build_dependencies2.is_some() { - warn_on_deprecated( - "build-dependencies", - name, - "platform target", - manifest_ctx.warnings, - ); + warn_on_deprecated("build-dependencies", name, "platform target", warnings); } validate_dependencies( platform.build_dependencies(), platform_kind.as_ref(), Some(DepKind::Build), - manifest_ctx.warnings, + warnings, )?; if platform.dev_dependencies.is_some() && platform.dev_dependencies2.is_some() { - warn_on_deprecated( - "dev-dependencies", - name, - "platform target", - manifest_ctx.warnings, - ); + warn_on_deprecated("dev-dependencies", name, "platform target", warnings); } validate_dependencies( platform.dev_dependencies(), platform_kind.as_ref(), Some(DepKind::Development), - manifest_ctx.warnings, + warnings, )?; } + + // Collect the dependencies. + let mut deps = Vec::new(); + let mut manifest_ctx = ManifestContext { + deps: &mut deps, + source_id, + gctx, + warnings, + platform: None, + root: package_root, + }; + gather_dependencies(&mut manifest_ctx, resolved_toml.dependencies.as_ref(), None)?; + gather_dependencies( + &mut manifest_ctx, + resolved_toml.dev_dependencies(), + Some(DepKind::Development), + )?; + gather_dependencies( + &mut manifest_ctx, + resolved_toml.build_dependencies(), + Some(DepKind::Build), + )?; for (name, platform) in resolved_toml.target.iter().flatten() { manifest_ctx.platform = Some(name.parse()?); gather_dependencies(&mut manifest_ctx, platform.dependencies.as_ref(), None)?; @@ -1106,7 +1066,6 @@ pub fn to_real_manifest( Some(DepKind::Development), )?; } - let replace = replace(&resolved_toml, &mut manifest_ctx)?; let patch = patch(&resolved_toml, &mut manifest_ctx)?; @@ -1126,6 +1085,19 @@ pub fn to_real_manifest( } } + verify_lints( + resolved_toml.resolved_lints().expect("previously resolved"), + gctx, + warnings, + )?; + let default = manifest::TomlLints::default(); + let rustflags = lints_to_rustflags( + resolved_toml + .resolved_lints() + .expect("previously resolved") + .unwrap_or(&default), + ); + let metadata = ManifestMetadata { description: resolved_package .resolved_description()