Skip to content

Commit 0eda16f

Browse files
committed
refactor(toml): Be specific with inheriting action
1 parent f8a63f6 commit 0eda16f

File tree

1 file changed

+28
-27
lines changed

1 file changed

+28
-27
lines changed

src/cargo/util/toml/mod.rs

Lines changed: 28 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -501,7 +501,7 @@ impl schema::TomlManifest {
501501
let version = package
502502
.version
503503
.clone()
504-
.map(|version| version.resolve("version", || inherit()?.version()))
504+
.map(|version| version.inherit_with("version", || inherit()?.version()))
505505
.transpose()?;
506506

507507
package.version = version.clone().map(schema::InheritableField::Value);
@@ -515,7 +515,7 @@ impl schema::TomlManifest {
515515

516516
let edition = if let Some(edition) = package.edition.clone() {
517517
let edition: Edition = edition
518-
.resolve("edition", || inherit()?.edition())?
518+
.inherit_with("edition", || inherit()?.edition())?
519519
.parse()
520520
.with_context(|| "failed to parse the `edition` key")?;
521521
package.edition = Some(schema::InheritableField::Value(edition.to_string()));
@@ -542,7 +542,7 @@ impl schema::TomlManifest {
542542
let rust_version = if let Some(rust_version) = &package.rust_version {
543543
let rust_version = rust_version
544544
.clone()
545-
.resolve("rust_version", || inherit()?.rust_version())?;
545+
.inherit_with("rust_version", || inherit()?.rust_version())?;
546546
let req = rust_version.to_caret_req();
547547
if let Some(first_version) = edition.first_version() {
548548
let unsupported =
@@ -661,7 +661,7 @@ impl schema::TomlManifest {
661661
for (n, v) in dependencies.iter() {
662662
let resolved = v
663663
.clone()
664-
.resolve_with_self(n, |dep| dep.resolve(n, inheritable, cx))?;
664+
.inherit_with(n, |dep| dep.inherit_with(n, inheritable, cx))?;
665665
let dep = resolved.to_dependency(n, cx, kind)?;
666666
let name_in_toml = dep.name_in_toml().as_str();
667667
validate_package_name(name_in_toml, "dependency name", "")?;
@@ -718,7 +718,7 @@ impl schema::TomlManifest {
718718
let lints = me
719719
.lints
720720
.clone()
721-
.map(|mw| mw.resolve(|| inherit()?.lints()))
721+
.map(|mw| mw.inherit_with(|| inherit()?.lints()))
722722
.transpose()?;
723723
let lints = verify_lints(lints)?;
724724
let default = schema::TomlLints::default();
@@ -799,13 +799,13 @@ impl schema::TomlManifest {
799799
let exclude = package
800800
.exclude
801801
.clone()
802-
.map(|mw| mw.resolve("exclude", || inherit()?.exclude()))
802+
.map(|mw| mw.inherit_with("exclude", || inherit()?.exclude()))
803803
.transpose()?
804804
.unwrap_or_default();
805805
let include = package
806806
.include
807807
.clone()
808-
.map(|mw| mw.resolve("include", || inherit()?.include()))
808+
.map(|mw| mw.inherit_with("include", || inherit()?.include()))
809809
.transpose()?
810810
.unwrap_or_default();
811811
let empty_features = BTreeMap::new();
@@ -832,70 +832,70 @@ impl schema::TomlManifest {
832832
description: package
833833
.description
834834
.clone()
835-
.map(|mw| mw.resolve("description", || inherit()?.description()))
835+
.map(|mw| mw.inherit_with("description", || inherit()?.description()))
836836
.transpose()?,
837837
homepage: package
838838
.homepage
839839
.clone()
840-
.map(|mw| mw.resolve("homepage", || inherit()?.homepage()))
840+
.map(|mw| mw.inherit_with("homepage", || inherit()?.homepage()))
841841
.transpose()?,
842842
documentation: package
843843
.documentation
844844
.clone()
845-
.map(|mw| mw.resolve("documentation", || inherit()?.documentation()))
845+
.map(|mw| mw.inherit_with("documentation", || inherit()?.documentation()))
846846
.transpose()?,
847847
readme: readme_for_package(
848848
package_root,
849849
package
850850
.readme
851851
.clone()
852-
.map(|mw| mw.resolve("readme", || inherit()?.readme(package_root)))
852+
.map(|mw| mw.inherit_with("readme", || inherit()?.readme(package_root)))
853853
.transpose()?
854854
.as_ref(),
855855
),
856856
authors: package
857857
.authors
858858
.clone()
859-
.map(|mw| mw.resolve("authors", || inherit()?.authors()))
859+
.map(|mw| mw.inherit_with("authors", || inherit()?.authors()))
860860
.transpose()?
861861
.unwrap_or_default(),
862862
license: package
863863
.license
864864
.clone()
865-
.map(|mw| mw.resolve("license", || inherit()?.license()))
865+
.map(|mw| mw.inherit_with("license", || inherit()?.license()))
866866
.transpose()?,
867867
license_file: package
868868
.license_file
869869
.clone()
870-
.map(|mw| mw.resolve("license", || inherit()?.license_file(package_root)))
870+
.map(|mw| mw.inherit_with("license", || inherit()?.license_file(package_root)))
871871
.transpose()?,
872872
repository: package
873873
.repository
874874
.clone()
875-
.map(|mw| mw.resolve("repository", || inherit()?.repository()))
875+
.map(|mw| mw.inherit_with("repository", || inherit()?.repository()))
876876
.transpose()?,
877877
keywords: package
878878
.keywords
879879
.clone()
880-
.map(|mw| mw.resolve("keywords", || inherit()?.keywords()))
880+
.map(|mw| mw.inherit_with("keywords", || inherit()?.keywords()))
881881
.transpose()?
882882
.unwrap_or_default(),
883883
categories: package
884884
.categories
885885
.clone()
886-
.map(|mw| mw.resolve("categories", || inherit()?.categories()))
886+
.map(|mw| mw.inherit_with("categories", || inherit()?.categories()))
887887
.transpose()?
888888
.unwrap_or_default(),
889889
badges: me
890890
.badges
891891
.clone()
892-
.map(|mw| mw.resolve("badges", || inherit()?.badges()))
892+
.map(|mw| mw.inherit_with("badges", || inherit()?.badges()))
893893
.transpose()?
894894
.unwrap_or_default(),
895895
links: package.links.clone(),
896896
rust_version: package
897897
.rust_version
898-
.map(|mw| mw.resolve("rust-version", || inherit()?.rust_version()))
898+
.map(|mw| mw.inherit_with("rust-version", || inherit()?.rust_version()))
899899
.transpose()?,
900900
};
901901
package.description = metadata
@@ -956,10 +956,11 @@ impl schema::TomlManifest {
956956
profiles.validate(cli_unstable, &features, &mut warnings)?;
957957
}
958958

959-
let publish = package
960-
.publish
961-
.clone()
962-
.map(|publish| publish.resolve("publish", || inherit()?.publish()).unwrap());
959+
let publish = package.publish.clone().map(|publish| {
960+
publish
961+
.inherit_with("publish", || inherit()?.publish())
962+
.unwrap()
963+
});
963964

964965
package.publish = publish.clone().map(|p| schema::InheritableField::Value(p));
965966

@@ -1540,7 +1541,7 @@ impl schema::TomlPackage {
15401541
}
15411542

15421543
impl<T> schema::InheritableField<T> {
1543-
fn resolve<'a>(
1544+
fn inherit_with<'a>(
15441545
self,
15451546
label: &str,
15461547
get_ws_inheritable: impl FnOnce() -> CargoResult<T>,
@@ -1564,7 +1565,7 @@ impl<T> schema::InheritableField<T> {
15641565
}
15651566

15661567
impl schema::InheritableDependency {
1567-
fn resolve_with_self<'a>(
1568+
fn inherit_with<'a>(
15681569
self,
15691570
label: &str,
15701571
get_ws_inheritable: impl FnOnce(&schema::TomlInheritedDependency) -> CargoResult<TomlDependency>,
@@ -1583,7 +1584,7 @@ impl schema::InheritableDependency {
15831584
}
15841585

15851586
impl schema::TomlInheritedDependency {
1586-
fn resolve<'a>(
1587+
fn inherit_with<'a>(
15871588
&self,
15881589
name: &str,
15891590
inheritable: impl FnOnce() -> CargoResult<&'a schema::InheritableFields>,
@@ -2243,7 +2244,7 @@ impl schema::TomlProfile {
22432244
}
22442245

22452246
impl schema::InheritableLints {
2246-
fn resolve<'a>(
2247+
fn inherit_with<'a>(
22472248
self,
22482249
get_ws_inheritable: impl FnOnce() -> CargoResult<schema::TomlLints>,
22492250
) -> CargoResult<schema::TomlLints> {

0 commit comments

Comments
 (0)