diff --git a/crates/toml_edit/src/encode.rs b/crates/toml_edit/src/encode.rs index 4747bd52..ea24c2db 100644 --- a/crates/toml_edit/src/encode.rs +++ b/crates/toml_edit/src/encode.rs @@ -237,11 +237,13 @@ fn visit_nested_tables<'t, F>( where F: FnMut(&'t Table, &Vec<&'t Key>, bool) -> Result, { - callback(table, path, is_array_of_tables)?; + if !table.is_dotted() { + callback(table, path, is_array_of_tables)?; + } for kv in table.items.values() { match kv.value { - Item::Table(ref t) if !t.is_dotted() => { + Item::Table(ref t) => { path.push(&kv.key); visit_nested_tables(t, path, false, callback)?; path.pop(); diff --git a/crates/toml_edit/tests/testsuite/parse.rs b/crates/toml_edit/tests/testsuite/parse.rs index 69cbc116..4155e97e 100644 --- a/crates/toml_edit/tests/testsuite/parse.rs +++ b/crates/toml_edit/tests/testsuite/parse.rs @@ -238,14 +238,10 @@ fn mixed_table_issue_527() { metadata.msrv = "1.65.0" [package.metadata.release.pre-release-replacements] -"#; - let expected = r#" -[package] -metadata.msrv = "1.65.0" "#; let document = input.parse::().unwrap(); let actual = document.to_string(); - assert_eq(expected, actual); + assert_eq(input, actual); } #[test]