fix(codegen): Removes unused json fields (#691)
This commit is contained in:
parent
28335ece88
commit
9b047d9d3f
462 changed files with 511 additions and 945 deletions
|
|
@ -52,11 +52,14 @@ namespace SerializableMigration
|
|||
null
|
||||
);
|
||||
|
||||
var length = serializableArrayType.RuleArguments.Length;
|
||||
var length = serializableArrayType.RuleArguments?.Length?? 0;
|
||||
ruleArguments = new string[length + 2];
|
||||
ruleArguments[0] = arrayTypeSymbol.ElementType.ToDisplayString();
|
||||
ruleArguments[1] = serializableArrayType.Rule;
|
||||
Array.Copy(serializableArrayType.RuleArguments, 0, ruleArguments, 2, length);
|
||||
if (length > 0)
|
||||
{
|
||||
Array.Copy(serializableArrayType.RuleArguments!, 0, ruleArguments, 2, length);
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
|
@ -70,7 +73,7 @@ namespace SerializableMigration
|
|||
throw new ArgumentException($"Invalid rule applied to property {ruleName}. Expecting {expectedRule}, but received {ruleName}.");
|
||||
}
|
||||
var ruleArguments = property.RuleArguments;
|
||||
var arrayElementRule = SerializableMigrationRulesEngine.Rules[ruleArguments[1]];
|
||||
var arrayElementRule = SerializableMigrationRulesEngine.Rules[ruleArguments![1]];
|
||||
var arrayElementRuleArguments = new string[ruleArguments.Length - 2];
|
||||
Array.Copy(ruleArguments, 2, arrayElementRuleArguments, 0, ruleArguments.Length - 2);
|
||||
|
||||
|
|
@ -102,7 +105,7 @@ namespace SerializableMigration
|
|||
}
|
||||
|
||||
var ruleArguments = property.RuleArguments;
|
||||
var arrayElementRule = SerializableMigrationRulesEngine.Rules[ruleArguments[1]];
|
||||
var arrayElementRule = SerializableMigrationRulesEngine.Rules[ruleArguments![1]];
|
||||
var arrayElementRuleArguments = new string[ruleArguments.Length - 2];
|
||||
Array.Copy(ruleArguments, 2, arrayElementRuleArguments, 0, ruleArguments.Length - 2);
|
||||
|
||||
|
|
|
|||
|
|
@ -62,7 +62,7 @@ namespace SerializableMigration
|
|||
extraOptions += "@Tidy";
|
||||
}
|
||||
|
||||
var length = serializableSetType.RuleArguments.Length;
|
||||
var length = serializableSetType.RuleArguments?.Length ?? 0;
|
||||
ruleArguments = new string[length + 3];
|
||||
ruleArguments[0] = extraOptions;
|
||||
ruleArguments[1] = setTypeSymbol.ToDisplayString();
|
||||
|
|
@ -82,7 +82,7 @@ namespace SerializableMigration
|
|||
}
|
||||
|
||||
var ruleArguments = property.RuleArguments;
|
||||
var hasExtraOptions = ruleArguments[0] == "" || ruleArguments[0].StartsWith("@", StringComparison.Ordinal);
|
||||
var hasExtraOptions = ruleArguments![0] == "" || ruleArguments[0].StartsWith("@", StringComparison.Ordinal);
|
||||
var argumentsOffset = hasExtraOptions ? 1 : 0;
|
||||
|
||||
var setElementRule = SerializableMigrationRulesEngine.Rules[ruleArguments[1 + argumentsOffset]];
|
||||
|
|
@ -125,7 +125,7 @@ namespace SerializableMigration
|
|||
}
|
||||
|
||||
var ruleArguments = property.RuleArguments;
|
||||
var hasExtraOptions = ruleArguments[0] == "" || ruleArguments[0].StartsWith("@", StringComparison.Ordinal);
|
||||
var hasExtraOptions = ruleArguments![0] == "" || ruleArguments[0].StartsWith("@", StringComparison.Ordinal);
|
||||
var shouldTidy = hasExtraOptions && ruleArguments[0].Contains("@Tidy");
|
||||
var argumentsOffset = hasExtraOptions ? 1 : 0;
|
||||
|
||||
|
|
|
|||
|
|
@ -67,18 +67,28 @@ namespace SerializableMigration
|
|||
null
|
||||
);
|
||||
|
||||
var keyArgumentsLength = keySerializedProperty.RuleArguments?.Length ?? 0;
|
||||
var valueArgumentsLength = valueSerializedProperty.RuleArguments?.Length ?? 0;
|
||||
var index = 0;
|
||||
|
||||
// Key
|
||||
ruleArguments = new string[5 + keySerializedProperty.RuleArguments.Length + valueSerializedProperty.RuleArguments.Length];
|
||||
ruleArguments[0] = typeArguments[0].ToDisplayString();
|
||||
ruleArguments[1] = keySerializedProperty.Rule;
|
||||
ruleArguments[2] = keySerializedProperty.RuleArguments.Length.ToString();
|
||||
Array.Copy(keySerializedProperty.RuleArguments, 0, ruleArguments, 2, keySerializedProperty.RuleArguments.Length);
|
||||
ruleArguments = new string[5 + keyArgumentsLength + valueArgumentsLength];
|
||||
ruleArguments[index++] = typeArguments[0].ToDisplayString();
|
||||
ruleArguments[index++] = keySerializedProperty.Rule;
|
||||
ruleArguments[index++] = keyArgumentsLength.ToString();
|
||||
if (keyArgumentsLength > 0)
|
||||
{
|
||||
Array.Copy(keySerializedProperty.RuleArguments!, 0, ruleArguments, index, keyArgumentsLength);
|
||||
}
|
||||
|
||||
// Value
|
||||
var valueIndex = 3 + keySerializedProperty.RuleArguments.Length;
|
||||
ruleArguments[valueIndex++] = typeArguments[1].ToDisplayString();
|
||||
ruleArguments[valueIndex++] = valueSerializedProperty.Rule;
|
||||
Array.Copy(valueSerializedProperty.RuleArguments, 0, ruleArguments, valueIndex, valueSerializedProperty.RuleArguments.Length);
|
||||
ruleArguments[index++] = typeArguments[1].ToDisplayString();
|
||||
ruleArguments[index++] = valueSerializedProperty.Rule;
|
||||
|
||||
if (valueArgumentsLength > 0)
|
||||
{
|
||||
Array.Copy(valueSerializedProperty.RuleArguments!, 0, ruleArguments, index, valueArgumentsLength);
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
|
@ -93,7 +103,7 @@ namespace SerializableMigration
|
|||
}
|
||||
|
||||
var ruleArguments = property.RuleArguments;
|
||||
var keyType = ruleArguments[0];
|
||||
var keyType = ruleArguments![0];
|
||||
var keyRule = SerializableMigrationRulesEngine.Rules[ruleArguments[1]];
|
||||
var keyRuleArguments = new string[int.Parse(ruleArguments[2])];
|
||||
Array.Copy(ruleArguments, 3, keyRuleArguments, 0, keyRuleArguments.Length);
|
||||
|
|
@ -149,7 +159,7 @@ namespace SerializableMigration
|
|||
}
|
||||
|
||||
var ruleArguments = property.RuleArguments;
|
||||
var keyType = ruleArguments[0];
|
||||
var keyType = ruleArguments![0];
|
||||
var keyRule = SerializableMigrationRulesEngine.Rules[ruleArguments[1]];
|
||||
var keyRuleArguments = new string[int.Parse(ruleArguments[2])];
|
||||
Array.Copy(ruleArguments, 3, keyRuleArguments, 0, keyRuleArguments.Length);
|
||||
|
|
|
|||
|
|
@ -62,12 +62,16 @@ namespace SerializableMigration
|
|||
extraOptions += "@Tidy";
|
||||
}
|
||||
|
||||
var length = serializableListType.RuleArguments.Length;
|
||||
var length = serializableListType.RuleArguments?.Length ?? 0;
|
||||
ruleArguments = new string[length + 3];
|
||||
ruleArguments[0] = extraOptions;
|
||||
ruleArguments[1] = listTypeSymbol.ToDisplayString();
|
||||
ruleArguments[2] = serializableListType.Rule;
|
||||
Array.Copy(serializableListType.RuleArguments, 0, ruleArguments, 3, length);
|
||||
|
||||
if (length > 0)
|
||||
{
|
||||
Array.Copy(serializableListType.RuleArguments!, 0, ruleArguments, 3, length);
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
|
@ -82,7 +86,7 @@ namespace SerializableMigration
|
|||
}
|
||||
|
||||
var ruleArguments = property.RuleArguments;
|
||||
var hasExtraOptions = ruleArguments[0] == "" || ruleArguments[0].StartsWith("@", StringComparison.Ordinal);
|
||||
var hasExtraOptions = ruleArguments![0] == "" || ruleArguments[0].StartsWith("@", StringComparison.Ordinal);
|
||||
var argumentsOffset = hasExtraOptions ? 1 : 0;
|
||||
|
||||
var listElementRule = SerializableMigrationRulesEngine.Rules[ruleArguments[argumentsOffset + 1]];
|
||||
|
|
@ -126,7 +130,7 @@ namespace SerializableMigration
|
|||
}
|
||||
|
||||
var ruleArguments = property.RuleArguments;
|
||||
var hasExtraOptions = ruleArguments[0] == "" || ruleArguments[0].StartsWith("@", StringComparison.Ordinal);
|
||||
var hasExtraOptions = ruleArguments![0] == "" || ruleArguments[0].StartsWith("@", StringComparison.Ordinal);
|
||||
var shouldTidy = hasExtraOptions && ruleArguments[0].Contains("@Tidy");
|
||||
var argumentsOffset = hasExtraOptions ? 1 : 0;
|
||||
|
||||
|
|
|
|||
|
|
@ -90,7 +90,7 @@ namespace SerializableMigration
|
|||
}
|
||||
|
||||
var propertyName = property.Name;
|
||||
var argument = property.RuleArguments.Length >= 1 ? property.RuleArguments[0] : null;
|
||||
var argument = property.RuleArguments?.Length >= 1 ? property.RuleArguments[0] : null;
|
||||
|
||||
const string ipAddress = SymbolMetadata.IPADDRESS_CLASS;
|
||||
const string timeSpan = SymbolMetadata.TIMESPAN_STRUCT;
|
||||
|
|
@ -133,7 +133,7 @@ namespace SerializableMigration
|
|||
}
|
||||
|
||||
var propertyName = property.Name;
|
||||
var argument = property.RuleArguments.Length >= 1 ? property.RuleArguments[0] : null;
|
||||
var argument = property.RuleArguments?.Length >= 1 ? property.RuleArguments[0] : null;
|
||||
|
||||
var writeMethod = property.Type switch
|
||||
{
|
||||
|
|
|
|||
|
|
@ -59,7 +59,7 @@ namespace SerializableMigration
|
|||
}
|
||||
|
||||
var propertyName = property.Name;
|
||||
source.AppendLine($"{indent}{propertyName} = reader.Read{property.RuleArguments[0]}();");
|
||||
source.AppendLine($"{indent}{propertyName} = reader.Read{property.RuleArguments?[0] ?? ""}();");
|
||||
}
|
||||
|
||||
public void GenerateSerializationMethod(StringBuilder source, string indent, SerializableProperty property)
|
||||
|
|
|
|||
|
|
@ -62,7 +62,7 @@ namespace SerializableMigration
|
|||
}
|
||||
|
||||
var propertyName = property.Name;
|
||||
var argument = property.RuleArguments.Length >= 1 &&
|
||||
var argument = property.RuleArguments?.Length >= 1 &&
|
||||
property.RuleArguments[0] == "DeserializationRequiresParent" ? ", this" : "";
|
||||
|
||||
source.AppendLine($"{indent}{propertyName} = new {property.Type}(reader{argument});");
|
||||
|
|
|
|||
|
|
@ -60,7 +60,7 @@ namespace SerializableMigration
|
|||
|
||||
var propertyName = property.Name;
|
||||
var ruleArguments = property.RuleArguments;
|
||||
var driftTimer = ruleArguments[0].Contains("@TimerDrift");
|
||||
var driftTimer = ruleArguments![0].Contains("@TimerDrift");
|
||||
|
||||
var readTimer = driftTimer ? "reader.ReadDeltaTime()" : "reader.ReadDateTime()";
|
||||
source.AppendLine($"{indent}var {propertyName}Delay = {readTimer} - Core.Now;");
|
||||
|
|
@ -77,7 +77,7 @@ namespace SerializableMigration
|
|||
|
||||
var propertyName = property.Name;
|
||||
var ruleArguments = property.RuleArguments;
|
||||
var driftTimer = ruleArguments[0].Contains("@TimerDrift");
|
||||
var driftTimer = ruleArguments![0].Contains("@TimerDrift");
|
||||
|
||||
var writerMethod = driftTimer ? "WriteDeltaTime" : "Write";
|
||||
source.AppendLine($"{indent}writer.{writerMethod}({propertyName}.Next);");
|
||||
|
|
|
|||
|
|
@ -27,6 +27,6 @@ namespace SerializableMigration
|
|||
public string Type { get; init; }
|
||||
|
||||
[JsonPropertyName("properties")]
|
||||
public ImmutableArray<SerializableProperty> Properties { get; init; }
|
||||
public ImmutableArray<SerializableProperty>? Properties { get; init; }
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -121,7 +121,7 @@ namespace SerializableMigration
|
|||
Order = order,
|
||||
UsesSaveFlag = serializablePropertyFlagGetter != null ? true : null,
|
||||
Rule = rule.RuleName,
|
||||
RuleArguments = ruleArguments
|
||||
RuleArguments = ruleArguments.Length > 0 ? ruleArguments : null
|
||||
};
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -32,7 +32,7 @@ namespace SerializableMigration
|
|||
public string Rule { get; init; }
|
||||
|
||||
[JsonPropertyName("ruleArguments")]
|
||||
public string[] RuleArguments { get; init; }
|
||||
public string[]? RuleArguments { get; init; }
|
||||
|
||||
[JsonIgnore]
|
||||
public int Order { get; init; }
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue