fix: Codegens BaseMulti, Container, and VirtualCheck (#1624)

This commit is contained in:
Kamron Batman 2023-12-02 13:00:02 -05:00 • committed by GitHub
parent 4ebdc75bdf
commit e21ff0eb28
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
9 changed files with 192 additions and 298 deletions

View file

@ -54,46 +54,63 @@ public static class JsonUtilities
switch(je.ValueKind)
{
case JsonValueKind.Object:
writer.WriteStartObject();
// TODO: This is slow, can make it faster?
foreach (JsonProperty x in je.EnumerateObject().OrderBy(prop => prop.Name))
{
writer.WritePropertyName(x.Name);
WriteJsonElementSorted(x.Value, writer);
}
writer.WriteStartObject();
writer.WriteEndObject();
break;
// TODO: This is slow, can make it faster?
foreach (JsonProperty x in je.EnumerateObject().OrderBy(prop => prop.Name))
{
writer.WritePropertyName(x.Name);
WriteJsonElementSorted(x.Value, writer);
}
writer.WriteEndObject();
break;
}
case JsonValueKind.Array:
writer.WriteStartArray();
foreach(JsonElement x in je.EnumerateArray())
{
WriteJsonElementSorted(x, writer);
writer.WriteStartArray();
foreach(JsonElement x in je.EnumerateArray())
{
WriteJsonElementSorted(x, writer);
}
writer.WriteEndArray();
break;
}
writer.WriteEndArray();
break;
case JsonValueKind.Number:
writer.WriteNumberValue(je.GetDouble());
break;
{
writer.WriteNumberValue(je.GetDouble());
break;
}
case JsonValueKind.String:
// Escape the string
writer.WriteStringValue(je.GetString());
break;
{
// Escape the string
writer.WriteStringValue(je.GetString());
break;
}
case JsonValueKind.Null:
writer.WriteNullValue();
break;
{
writer.WriteNullValue();
break;
}
case JsonValueKind.True:
writer.WriteBooleanValue(true);
break;
{
writer.WriteBooleanValue(true);
break;
}
case JsonValueKind.False:
writer.WriteBooleanValue(false);
break;
{
writer.WriteBooleanValue(false);
break;
}
case JsonValueKind.Undefined: // Don't write anything
break;
{
break;
}
default:
throw new NotImplementedException($"Kind: {je.ValueKind}");
{
throw new NotImplementedException($"Kind: {je.ValueKind}");
}
}
}
}