diff --git a/src/cargo/util/toml.rs b/src/cargo/util/toml.rs index 57fe72abb5a..34ab86a3143 100644 --- a/src/cargo/util/toml.rs +++ b/src/cargo/util/toml.rs @@ -109,9 +109,7 @@ pub fn to_manifest(contents: &str, let manifest: TomlManifest = serde_ignored::deserialize(root, |path| { let mut key = String::new(); stringify(&mut key, &path); - if !key.starts_with("package.metadata") { - unused.insert(key); - } + unused.insert(key); })?; let manifest = Rc::new(manifest); @@ -459,6 +457,7 @@ pub struct TomlProject { #[serde(rename = "license-file")] license_file: Option, repository: Option, + metadata: Option, } #[derive(Deserialize, Serialize)] diff --git a/tests/package.rs b/tests/package.rs index 1777235e1cf..d54fdc2375a 100644 --- a/tests/package.rs +++ b/tests/package.rs @@ -604,6 +604,9 @@ fn generated_manifest() { license = "MIT" description = "foo" + [project.metadata] + foo = 'bar' + [workspace] [dependencies] @@ -652,6 +655,9 @@ authors = [] exclude = ["*.txt"] description = "foo" license = "MIT" + +[package.metadata] +foo = "bar" [dependencies.bar] version = "0.1" "#));