From c2f28f9a985f54c109cd93cabdb7a44ef5900f20 Mon Sep 17 00:00:00 2001 From: Kamron Batman <3953314+kamronbatman@users.noreply.github.com> Date: Fri, 20 Aug 2021 22:46:13 -0700 Subject: [PATCH] fix(codegen): Fixes bool in migration structs (#709) * Fixes bool? not being a valid type for save flag property migrations. * Fixes wrong SaveFlag type used in the if check for boolean save flags. --- .../SerializationEntityGeneration.ContentStruct.cs | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/Projects/SerializationGenerator/SerializableEntityGeneration/SerializationEntityGeneration.ContentStruct.cs b/Projects/SerializationGenerator/SerializableEntityGeneration/SerializationEntityGeneration.ContentStruct.cs index 31415e0ef..712192831 100644 --- a/Projects/SerializationGenerator/SerializableEntityGeneration/SerializationEntityGeneration.ContentStruct.cs +++ b/Projects/SerializationGenerator/SerializableEntityGeneration/SerializationEntityGeneration.ContentStruct.cs @@ -38,9 +38,10 @@ namespace SerializationGenerator foreach (var serializableProperty in properties) { - var type = compilation.GetTypeByMetadataName(serializableProperty.Type)?.IsValueType == true - || SymbolMetadata.IsPrimitiveFromTypeDisplayString(serializableProperty.Type) - ? $"{serializableProperty.Type}?" : serializableProperty.Type; + var propertyType = serializableProperty.Type; + var type = compilation.GetTypeByMetadataName(propertyType)?.IsValueType == true + || SymbolMetadata.IsPrimitiveFromTypeDisplayString(propertyType) && propertyType != "bool" + ? $"{propertyType}?" : propertyType; source.AppendLine($"{indent} internal readonly {type} {serializableProperty.Name};"); } @@ -90,7 +91,7 @@ namespace SerializationGenerator // Special case if (property.Type == "bool") { - source.AppendLine($"{innerIndent}{property.Name} = (saveFlags & SaveFlag.{property.Name}) != 0;"); + source.AppendLine($"{innerIndent}{property.Name} = (saveFlags & V{migration.Version}SaveFlag.{property.Name}) != 0;"); } else {