Skip to content

Commit a88b516

Browse files
authored
Use the overload that takes an immutable array in serailization (#11393)
Noticed this while doing the preprocessor symbols, and was reminded of it in the working group meeting. These are all immutable arrays, but were calling a serialize method that took an `IReadOnlyList`, so would have boxed an enumerator and not handled default.
2 parents e076a7b + b27a12b commit a88b516

File tree

3 files changed

+11
-19
lines changed

3 files changed

+11
-19
lines changed

src/Shared/Microsoft.AspNetCore.Razor.Serialization.Json/JsonDataWriter.cs

Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -312,14 +312,6 @@ public void WriteArrayIfNotNullOrEmpty<T>(string propertyName, IEnumerable<T>? e
312312
}
313313
}
314314

315-
public void WriteArrayIfNotNullOrEmpty<T>(string propertyName, IReadOnlyList<T>? elements, WriteValue<T> writeElement)
316-
{
317-
if (elements is { Count: > 0 })
318-
{
319-
WriteArray(propertyName, elements, writeElement);
320-
}
321-
}
322-
323315
public void WriteArrayIfNotDefaultOrEmpty<T>(string propertyName, ImmutableArray<T> elements, WriteValue<T> writeElement)
324316
{
325317
if (!elements.IsDefaultOrEmpty)

src/Shared/Microsoft.AspNetCore.Razor.Serialization.Json/ObjectWriters.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@ public static void WriteProperties(JsonDataWriter writer, RazorConfiguration val
4141
writer.WriteIfNotFalse(nameof(value.UseRoslynTokenizer), value.UseRoslynTokenizer);
4242
writer.WriteArrayIfNotDefaultOrEmpty(nameof(value.PreprocessorSymbols), value.PreprocessorSymbols, static (w, v) => w.Write(v));
4343

44-
writer.WriteArrayIfNotNullOrEmpty(nameof(value.Extensions), value.Extensions, static (w, v) => w.Write(v.ExtensionName));
44+
writer.WriteArrayIfNotDefaultOrEmpty(nameof(value.Extensions), value.Extensions, static (w, v) => w.Write(v.ExtensionName));
4545
}
4646

4747
public static void Write(JsonDataWriter writer, RazorDiagnostic? value)

src/Shared/Microsoft.AspNetCore.Razor.Serialization.Json/ObjectWriters_TagHelpers.cs

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -24,11 +24,11 @@ public static void WriteProperties(JsonDataWriter writer, TagHelperDescriptor va
2424
WriteDocumentationObject(writer, nameof(value.Documentation), value.DocumentationObject);
2525
writer.WriteIfNotNull(nameof(value.TagOutputHint), value.TagOutputHint);
2626
writer.Write(nameof(value.CaseSensitive), value.CaseSensitive);
27-
writer.WriteArrayIfNotNullOrEmpty(nameof(value.TagMatchingRules), value.TagMatchingRules, WriteTagMatchingRule);
28-
writer.WriteArrayIfNotNullOrEmpty(nameof(value.BoundAttributes), value.BoundAttributes, WriteBoundAttribute);
29-
writer.WriteArrayIfNotNullOrEmpty(nameof(value.AllowedChildTags), value.AllowedChildTags, WriteAllowedChildTag);
27+
writer.WriteArrayIfNotDefaultOrEmpty(nameof(value.TagMatchingRules), value.TagMatchingRules, WriteTagMatchingRule);
28+
writer.WriteArrayIfNotDefaultOrEmpty(nameof(value.BoundAttributes), value.BoundAttributes, WriteBoundAttribute);
29+
writer.WriteArrayIfNotDefaultOrEmpty(nameof(value.AllowedChildTags), value.AllowedChildTags, WriteAllowedChildTag);
3030
WriteMetadata(writer, nameof(value.Metadata), value.Metadata);
31-
writer.WriteArrayIfNotNullOrEmpty(nameof(value.Diagnostics), value.Diagnostics, Write);
31+
writer.WriteArrayIfNotDefaultOrEmpty(nameof(value.Diagnostics), value.Diagnostics, Write);
3232

3333
static void WriteDocumentationObject(JsonDataWriter writer, string propertyName, DocumentationObject documentationObject)
3434
{
@@ -68,8 +68,8 @@ static void WriteTagMatchingRule(JsonDataWriter writer, TagMatchingRuleDescripto
6868
writer.WriteIfNotNull(nameof(value.ParentTag), value.ParentTag);
6969
writer.WriteIfNotZero(nameof(value.TagStructure), (int)value.TagStructure);
7070
writer.WriteIfNotTrue(nameof(value.CaseSensitive), value.CaseSensitive);
71-
writer.WriteArrayIfNotNullOrEmpty(nameof(value.Attributes), value.Attributes, WriteRequiredAttribute);
72-
writer.WriteArrayIfNotNullOrEmpty(nameof(value.Diagnostics), value.Diagnostics, Write);
71+
writer.WriteArrayIfNotDefaultOrEmpty(nameof(value.Attributes), value.Attributes, WriteRequiredAttribute);
72+
writer.WriteArrayIfNotDefaultOrEmpty(nameof(value.Diagnostics), value.Diagnostics, Write);
7373
});
7474
}
7575

@@ -85,7 +85,7 @@ static void WriteRequiredAttribute(JsonDataWriter writer, RequiredAttributeDescr
8585
writer.WriteIfNotNull(nameof(value.DisplayName), value.DisplayName);
8686

8787
WriteMetadata(writer, nameof(value.Metadata), value.Metadata);
88-
writer.WriteArrayIfNotNullOrEmpty(nameof(value.Diagnostics), value.Diagnostics, Write);
88+
writer.WriteArrayIfNotDefaultOrEmpty(nameof(value.Diagnostics), value.Diagnostics, Write);
8989
});
9090
}
9191

@@ -105,10 +105,10 @@ static void WriteBoundAttribute(JsonDataWriter writer, BoundAttributeDescriptor
105105
WriteDocumentationObject(writer, nameof(value.Documentation), value.DocumentationObject);
106106
writer.WriteIfNotTrue(nameof(value.CaseSensitive), value.CaseSensitive);
107107
writer.WriteIfNotFalse(nameof(value.IsEditorRequired), value.IsEditorRequired);
108-
writer.WriteArrayIfNotNullOrEmpty("BoundAttributeParameters", value.Parameters, WriteBoundAttributeParameter);
108+
writer.WriteArrayIfNotDefaultOrEmpty("BoundAttributeParameters", value.Parameters, WriteBoundAttributeParameter);
109109

110110
WriteMetadata(writer, nameof(value.Metadata), value.Metadata);
111-
writer.WriteArrayIfNotNullOrEmpty(nameof(value.Diagnostics), value.Diagnostics, Write);
111+
writer.WriteArrayIfNotDefaultOrEmpty(nameof(value.Diagnostics), value.Diagnostics, Write);
112112
});
113113
}
114114

@@ -125,7 +125,7 @@ static void WriteBoundAttributeParameter(JsonDataWriter writer, BoundAttributePa
125125
writer.WriteIfNotTrue(nameof(value.CaseSensitive), value.CaseSensitive);
126126

127127
WriteMetadata(writer, nameof(value.Metadata), value.Metadata);
128-
writer.WriteArrayIfNotNullOrEmpty(nameof(value.Diagnostics), value.Diagnostics, Write);
128+
writer.WriteArrayIfNotDefaultOrEmpty(nameof(value.Diagnostics), value.Diagnostics, Write);
129129
});
130130
}
131131

0 commit comments

Comments
 (0)