Skip to content

Commit

Permalink
Fix: remove unused boolean local variables
Browse files Browse the repository at this point in the history
  • Loading branch information
pCYSl5EDgo committed Oct 25, 2020
1 parent fdfabeb commit 9b0d4a2
Show file tree
Hide file tree
Showing 4 changed files with 38 additions and 22 deletions.
12 changes: 2 additions & 10 deletions sandbox/Sandbox/Generated.cs
Expand Up @@ -3710,7 +3710,6 @@ public void Serialize(ref global::MessagePack.MessagePackWriter writer, global::
options.Security.DepthStep(ref reader);
var length = reader.ReadMapHeader();
var __X__ = default(int);
var __X__IsInitialized = false;

for (int i = 0; i < length; i++)
{
Expand All @@ -3724,7 +3723,6 @@ public void Serialize(ref global::MessagePack.MessagePackWriter writer, global::
case 1:
if (stringKey[0] != 88) { goto FAIL; }

__X__IsInitialized = true;
__X__ = reader.ReadInt32();
continue;

Expand Down Expand Up @@ -3761,7 +3759,6 @@ public void Serialize(ref global::MessagePack.MessagePackWriter writer, global::
options.Security.DepthStep(ref reader);
var length = reader.ReadMapHeader();
var __X__ = default(int);
var __X__IsInitialized = false;

for (int i = 0; i < length; i++)
{
Expand All @@ -3775,7 +3772,6 @@ public void Serialize(ref global::MessagePack.MessagePackWriter writer, global::
case 1:
if (stringKey[0] != 88) { goto FAIL; }

__X__IsInitialized = true;
__X__ = reader.ReadInt32();
continue;

Expand Down Expand Up @@ -3821,9 +3817,8 @@ public void Serialize(ref global::MessagePack.MessagePackWriter writer, global::
options.Security.DepthStep(ref reader);
var length = reader.ReadMapHeader();
var __Prop1__ = default(int);
var __Prop1__IsInitialized = false;
var __Prop2__ = default(int);
var __Prop2__IsInitialized = false;
var __Prop2__ = default(int);

for (int i = 0; i < length; i++)
{
Expand All @@ -3839,7 +3834,6 @@ public void Serialize(ref global::MessagePack.MessagePackWriter writer, global::
{
default: goto FAIL;
case 212339749456UL:
__Prop1__IsInitialized = true;
__Prop1__ = reader.ReadInt32();
continue;
case 216634716752UL:
Expand Down Expand Up @@ -3950,9 +3944,8 @@ public void Serialize(ref global::MessagePack.MessagePackWriter writer, global::
options.Security.DepthStep(ref reader);
var length = reader.ReadMapHeader();
var __Prop1__ = default(int);
var __Prop1__IsInitialized = false;
var __Prop2__ = default(int);
var __Prop2__IsInitialized = false;
var __Prop2__ = default(int);

for (int i = 0; i < length; i++)
{
Expand All @@ -3968,7 +3961,6 @@ public void Serialize(ref global::MessagePack.MessagePackWriter writer, global::
{
default: goto FAIL;
case 212339749456UL:
__Prop1__IsInitialized = true;
__Prop1__ = reader.ReadInt32();
continue;
case 216634716752UL:
Expand Down
Expand Up @@ -12,10 +12,11 @@ namespace MessagePackCompiler.Generator
{
internal static class StringKeyFormatterDeserializeHelper
{
public static string Classify(MemberSerializationInfo[] memberArray, string indent, bool canOverwrite)
public static string Classify(ObjectSerializationInfo objectSerializationInfo, string indent, bool canOverwrite)
{
var memberArray = objectSerializationInfo.Members;
var buffer = new StringBuilder();
foreach (var memberInfoTuples in memberArray.Select(member => new MemberInfoTuple(member)).GroupBy(member => member.Binary.Length))
foreach (var memberInfoTuples in memberArray.Select(member => new MemberInfoTuple(member, IsConstructorParameter(objectSerializationInfo, member))).GroupBy(member => member.Binary.Length))
{
var binaryLength = memberInfoTuples.Key;
var keyLength = binaryLength >> 3;
Expand All @@ -28,6 +29,19 @@ public static string Classify(MemberSerializationInfo[] memberArray, string inde
return buffer.ToString();
}

private static bool IsConstructorParameter(ObjectSerializationInfo objectSerializationInfo, MemberSerializationInfo member)
{
foreach (var parameter in objectSerializationInfo.ConstructorParameters)
{
if (parameter.Equals(member))
{
return true;
}
}

return false;
}

private static void Assign(StringBuilder buffer, in MemberInfoTuple member, bool canOverwrite, string indent, string tab, int tabCount)
{
if (canOverwrite)
Expand All @@ -39,10 +53,13 @@ private static void Assign(StringBuilder buffer, in MemberInfoTuple member, bool
}
else
{
buffer.Append("__").Append(member.Info.Name).Append("__IsInitialized = true;\r\n").Append(indent);
for (var i = 0; i < tabCount; i++)
if (!member.IsConstructorParameter)
{
buffer.Append(tab);
buffer.Append("__").Append(member.Info.Name).Append("__IsInitialized = true;\r\n").Append(indent);
for (var i = 0; i < tabCount; i++)
{
buffer.Append(tab);
}
}

buffer.Append("__").Append(member.Info.Name).Append("__ = ");
Expand Down Expand Up @@ -184,12 +201,14 @@ private static void EmbedSequenceEqual(StringBuilder buffer, MemberInfoTuple mem
internal readonly struct MemberInfoTuple : IComparable<MemberInfoTuple>
{
public readonly MemberSerializationInfo Info;
public readonly bool IsConstructorParameter;
public readonly byte[] Binary;
public readonly ulong[] Key;

public MemberInfoTuple(MemberSerializationInfo info)
public MemberInfoTuple(MemberSerializationInfo info, bool isConstructorParameter)
{
Info = info;
IsConstructorParameter = isConstructorParameter;
Binary = EmbedStringHelper.Utf8.GetBytes(info.StringKey);
ReadOnlySpan<byte> span = Binary;
var keyLength = Binary.Length >> 3;
Expand Down
Expand Up @@ -133,13 +133,16 @@ namespace ");
this.Write(";\r\n");
} else {
foreach (var member in objInfo.Members.Where(x => x.IsWritable)) {
if (objInfo.ConstructorParameters.All(p => !p.Equals(member))) {
this.Write(" var __");
this.Write(this.ToStringHelper.ToStringWithCulture(member.Name));
this.Write("__IsInitialized = false;\r\n");
}
this.Write(" var __");
this.Write(this.ToStringHelper.ToStringWithCulture(member.Name));
this.Write("__ = default(");
this.Write(this.ToStringHelper.ToStringWithCulture(member.Type));
this.Write(");\r\n var __");
this.Write(this.ToStringHelper.ToStringWithCulture(member.Name));
this.Write("__IsInitialized = false;\r\n");
this.Write(");\r\n");
}
}
this.Write(@"
Expand All @@ -153,7 +156,7 @@ namespace ");
reader.Skip();
continue;
");
this.Write(this.ToStringHelper.ToStringWithCulture(StringKeyFormatterDeserializeHelper.Classify(objInfo.Members, " ", canOverwrite)));
this.Write(this.ToStringHelper.ToStringWithCulture(StringKeyFormatterDeserializeHelper.Classify(objInfo, " ", canOverwrite)));
this.Write("\r\n }\r\n }\r\n\r\n");
if (!canOverwrite) {
this.Write(" var ____result = new ");
Expand Down
Expand Up @@ -101,8 +101,10 @@ foreach (var objInfo in ObjectSerializationInfos) {
var ____result = new <#= objInfo.GetConstructorString() #>;
<# } else {
foreach (var member in objInfo.Members.Where(x => x.IsWritable)) { #>
var __<#= member.Name #>__ = default(<#= member.Type #>);
<# if (objInfo.ConstructorParameters.All(p => !p.Equals(member))) { #>
var __<#= member.Name #>__IsInitialized = false;
<# } #>
var __<#= member.Name #>__ = default(<#= member.Type #>);
<# } #>
<# } #>

Expand All @@ -115,7 +117,7 @@ foreach (var objInfo in ObjectSerializationInfos) {
FAIL:
reader.Skip();
continue;
<#= StringKeyFormatterDeserializeHelper.Classify(objInfo.Members, " ", canOverwrite) #>
<#= StringKeyFormatterDeserializeHelper.Classify(objInfo, " ", canOverwrite) #>
}
}

Expand Down

0 comments on commit 9b0d4a2

Please sign in to comment.