refactor(toml): Rely on resolved keywords

This commit is contained in:
Ed Page 2024-03-19 14:01:03 -05:00
parent d435d0e72a
commit 258d8447a9
2 changed files with 13 additions and 8 deletions

View File

@ -233,6 +233,10 @@ impl TomlPackage {
})
.transpose()
}
pub fn resolved_keywords(&self) -> Result<Option<&Vec<String>>, UnresolvedError> {
self.keywords.as_ref().map(|v| v.resolved()).transpose()
}
}
/// An enum that allows for inheriting keys from a workspace in a Cargo.toml.

View File

@ -590,6 +590,12 @@ pub fn to_real_manifest(
.as_ref(),
)
.map(|s| manifest::InheritableField::Value(StringOrBool::String(s)));
package.keywords = package
.keywords
.clone()
.map(|value| field_inherit_with(value, "keywords", || inherit()?.keywords()))
.transpose()?
.map(manifest::InheritableField::Value);
let rust_version = package
.resolved_rust_version()
@ -927,10 +933,9 @@ pub fn to_real_manifest(
.map(|mw| field_inherit_with(mw, "repository", || inherit()?.repository()))
.transpose()?,
keywords: package
.keywords
.clone()
.map(|mw| field_inherit_with(mw, "keywords", || inherit()?.keywords()))
.transpose()?
.resolved_keywords()
.expect("previously resolved")
.cloned()
.unwrap_or_default(),
categories: package
.categories
@ -963,10 +968,6 @@ pub fn to_real_manifest(
.repository
.clone()
.map(|repository| manifest::InheritableField::Value(repository));
package.keywords = package
.keywords
.as_ref()
.map(|_| manifest::InheritableField::Value(metadata.keywords.clone()));
package.categories = package
.categories
.as_ref()