Skip to content

Commit 1e761a1

Browse files
committed
refactor(toml): Gather dependency gathering
1 parent ecf97cf commit 1e761a1

File tree

1 file changed

+46
-74
lines changed

1 file changed

+46
-74
lines changed

src/cargo/util/toml/mod.rs

Lines changed: 46 additions & 74 deletions
Original file line numberDiff line numberDiff line change
@@ -982,116 +982,76 @@ pub fn to_real_manifest(
982982
}
983983
}
984984

985-
let mut deps = Vec::new();
986-
987-
let mut manifest_ctx = ManifestContext {
988-
deps: &mut deps,
989-
source_id,
990-
gctx,
991-
warnings,
992-
platform: None,
993-
root: package_root,
994-
};
995-
996-
// Collect the dependencies.
997-
validate_dependencies(
998-
original_toml.dependencies.as_ref(),
999-
None,
1000-
None,
1001-
manifest_ctx.warnings,
1002-
)?;
1003-
gather_dependencies(&mut manifest_ctx, resolved_toml.dependencies.as_ref(), None)?;
985+
validate_dependencies(original_toml.dependencies.as_ref(), None, None, warnings)?;
1004986
if original_toml.dev_dependencies.is_some() && original_toml.dev_dependencies2.is_some() {
1005-
warn_on_deprecated(
1006-
"dev-dependencies",
1007-
package_name,
1008-
"package",
1009-
manifest_ctx.warnings,
1010-
);
987+
warn_on_deprecated("dev-dependencies", package_name, "package", warnings);
1011988
}
1012989
validate_dependencies(
1013990
original_toml.dev_dependencies(),
1014991
None,
1015992
Some(DepKind::Development),
1016-
manifest_ctx.warnings,
1017-
)?;
1018-
gather_dependencies(
1019-
&mut manifest_ctx,
1020-
resolved_toml.dev_dependencies(),
1021-
Some(DepKind::Development),
993+
warnings,
1022994
)?;
1023995
if original_toml.build_dependencies.is_some() && original_toml.build_dependencies2.is_some() {
1024-
warn_on_deprecated(
1025-
"build-dependencies",
1026-
package_name,
1027-
"package",
1028-
manifest_ctx.warnings,
1029-
);
996+
warn_on_deprecated("build-dependencies", package_name, "package", warnings);
1030997
}
1031998
validate_dependencies(
1032999
original_toml.build_dependencies(),
10331000
None,
10341001
Some(DepKind::Build),
1035-
manifest_ctx.warnings,
1036-
)?;
1037-
gather_dependencies(
1038-
&mut manifest_ctx,
1039-
resolved_toml.build_dependencies(),
1040-
Some(DepKind::Build),
1041-
)?;
1042-
1043-
verify_lints(
1044-
resolved_toml.resolved_lints().expect("previously resolved"),
1045-
gctx,
1046-
manifest_ctx.warnings,
1002+
warnings,
10471003
)?;
1048-
let default = manifest::TomlLints::default();
1049-
let rustflags = lints_to_rustflags(
1050-
resolved_toml
1051-
.resolved_lints()
1052-
.expect("previously resolved")
1053-
.unwrap_or(&default),
1054-
);
1055-
10561004
for (name, platform) in original_toml.target.iter().flatten() {
10571005
let platform_kind: Platform = name.parse()?;
1058-
platform_kind.check_cfg_attributes(manifest_ctx.warnings);
1006+
platform_kind.check_cfg_attributes(warnings);
10591007
let platform_kind = Some(platform_kind);
10601008
validate_dependencies(
10611009
platform.dependencies.as_ref(),
10621010
platform_kind.as_ref(),
10631011
None,
1064-
manifest_ctx.warnings,
1012+
warnings,
10651013
)?;
10661014
if platform.build_dependencies.is_some() && platform.build_dependencies2.is_some() {
1067-
warn_on_deprecated(
1068-
"build-dependencies",
1069-
name,
1070-
"platform target",
1071-
manifest_ctx.warnings,
1072-
);
1015+
warn_on_deprecated("build-dependencies", name, "platform target", warnings);
10731016
}
10741017
validate_dependencies(
10751018
platform.build_dependencies(),
10761019
platform_kind.as_ref(),
10771020
Some(DepKind::Build),
1078-
manifest_ctx.warnings,
1021+
warnings,
10791022
)?;
10801023
if platform.dev_dependencies.is_some() && platform.dev_dependencies2.is_some() {
1081-
warn_on_deprecated(
1082-
"dev-dependencies",
1083-
name,
1084-
"platform target",
1085-
manifest_ctx.warnings,
1086-
);
1024+
warn_on_deprecated("dev-dependencies", name, "platform target", warnings);
10871025
}
10881026
validate_dependencies(
10891027
platform.dev_dependencies(),
10901028
platform_kind.as_ref(),
10911029
Some(DepKind::Development),
1092-
manifest_ctx.warnings,
1030+
warnings,
10931031
)?;
10941032
}
1033+
1034+
// Collect the dependencies.
1035+
let mut deps = Vec::new();
1036+
let mut manifest_ctx = ManifestContext {
1037+
deps: &mut deps,
1038+
source_id,
1039+
gctx,
1040+
warnings,
1041+
platform: None,
1042+
root: package_root,
1043+
};
1044+
gather_dependencies(&mut manifest_ctx, resolved_toml.dependencies.as_ref(), None)?;
1045+
gather_dependencies(
1046+
&mut manifest_ctx,
1047+
resolved_toml.dev_dependencies(),
1048+
Some(DepKind::Development),
1049+
)?;
1050+
gather_dependencies(
1051+
&mut manifest_ctx,
1052+
resolved_toml.build_dependencies(),
1053+
Some(DepKind::Build),
1054+
)?;
10951055
for (name, platform) in resolved_toml.target.iter().flatten() {
10961056
manifest_ctx.platform = Some(name.parse()?);
10971057
gather_dependencies(&mut manifest_ctx, platform.dependencies.as_ref(), None)?;
@@ -1106,7 +1066,6 @@ pub fn to_real_manifest(
11061066
Some(DepKind::Development),
11071067
)?;
11081068
}
1109-
11101069
let replace = replace(&resolved_toml, &mut manifest_ctx)?;
11111070
let patch = patch(&resolved_toml, &mut manifest_ctx)?;
11121071

@@ -1126,6 +1085,19 @@ pub fn to_real_manifest(
11261085
}
11271086
}
11281087

1088+
verify_lints(
1089+
resolved_toml.resolved_lints().expect("previously resolved"),
1090+
gctx,
1091+
warnings,
1092+
)?;
1093+
let default = manifest::TomlLints::default();
1094+
let rustflags = lints_to_rustflags(
1095+
resolved_toml
1096+
.resolved_lints()
1097+
.expect("previously resolved")
1098+
.unwrap_or(&default),
1099+
);
1100+
11291101
let metadata = ManifestMetadata {
11301102
description: resolved_package
11311103
.resolved_description()

0 commit comments

Comments
 (0)