diff --git a/src/Tomlyn.Tests/BasicTests.cs b/src/Tomlyn.Tests/BasicTests.cs index 06f86db..00553ed 100644 --- a/src/Tomlyn.Tests/BasicTests.cs +++ b/src/Tomlyn.Tests/BasicTests.cs @@ -12,6 +12,19 @@ namespace Tomlyn.Tests { public class BasicTests { + [Test] + public void TestTableArraysContainingPrimitiveArraysSerialize() + { + var test = @"[[table_array]] +primitive_list = [4, 5, 6] +"; + + var model = Toml.ToModel(test); + var tomlOut = Toml.FromModel(model); + + Assert.AreEqual(test, tomlOut); + } + [Test] public void TestHelloWorld() { diff --git a/src/Tomlyn/Model/ModelToTomlTransform.cs b/src/Tomlyn/Model/ModelToTomlTransform.cs index a139dda..1f0df06 100644 --- a/src/Tomlyn/Model/ModelToTomlTransform.cs +++ b/src/Tomlyn/Model/ModelToTomlTransform.cs @@ -432,6 +432,10 @@ private bool IsRequiringInline(object? value) private bool IsRequiringInline(ListDynamicAccessor accessor, object value, int parentConsecutiveList) { + // Always disable inline for TomlTableArray + // This is only working for default TomlTableArray model + if (value is TomlTableArray) return false; + foreach (var element in accessor.GetElements(value)) { if (element is null) continue; // TODO: should this log an error?