Skip to content

Commit

Permalink
nino v2.0.4
Browse files Browse the repository at this point in the history
Nino.Serialization v2.0.4
- [Fix] Fix compilation error for subclasses having members with identical names #127
  • Loading branch information
JasonXuDeveloper committed Jul 19, 2024
1 parent 086e438 commit ad54d55
Show file tree
Hide file tree
Showing 4 changed files with 16 additions and 13 deletions.
7 changes: 3 additions & 4 deletions src/Nino.Core/Nino.Core.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -7,17 +7,16 @@
<LangVersion>9</LangVersion>
<PackageId>Nino.Serialization</PackageId>
<GeneratePackageOnBuild>true</GeneratePackageOnBuild>
<Version>2.0.3</Version>
<Version>2.0.4</Version>
<Title>Nino.Serialization</Title>
<Authors>JasonXuDeveloper</Authors>
<Description>High performance and low size binary serialization solution, especially for Unity.</Description>
<Copyright>JasonXuDeveloper</Copyright>
<RepositoryUrl>https://github.com/JasonXuDeveloper/Nino</RepositoryUrl>
<RepositoryType>git</RepositoryType>
<PackageTags>Nino;Serialization;Binary</PackageTags>
<PackageReleaseNotes>Nino.Serialization v2.0.3
- [Fix] Fix complilation error for special assembly names
- [Optimisation] Faster deserialisation</PackageReleaseNotes>
<PackageReleaseNotes>Nino.Serialization v2.0.4
- [Fix] Fix complilation error for subclasses having members with identical names</PackageReleaseNotes>
<PackageLicenseExpression>MIT</PackageLicenseExpression>
<PackageProjectUrl>https://nino.xgamedev.net/</PackageProjectUrl>
</PropertyGroup>
Expand Down
8 changes: 7 additions & 1 deletion src/Nino.Generator/DeserializerGenerator.cs
Original file line number Diff line number Diff line change
Expand Up @@ -167,7 +167,9 @@ void WriteMembers(List<MemberDeclarationSyntax> members, string valName)
sb.AppendLine($" Deserialize(out {valName}.{name}, ref reader);");
else
{
var tempName = $"temp_{name}";
var t = declaredType.ToDisplayString().Select(c => char.IsLetterOrDigit(c) ? c : '_')
.Aggregate("", (a, b) => a + b);
var tempName = $"{t}_temp_{name}";
sb.AppendLine(
$" Deserialize(out {declaredType.ToDisplayString()} {tempName}, ref reader);");
sb.AppendLine($" {valName}.{name} = {tempName};");
Expand Down Expand Up @@ -210,6 +212,7 @@ void WriteMembers(List<MemberDeclarationSyntax> members, string valName)
string valName = subType.Replace(".", "_").ToLower();
int id = GetId(subType);
sb.AppendLine($" case {id}:");
sb.AppendLine(" {");
sb.AppendLine($" {subType} {valName} = new {subType}();");


Expand All @@ -223,13 +226,16 @@ void WriteMembers(List<MemberDeclarationSyntax> members, string valName)
WriteMembers(members, valName);
sb.AppendLine($" value = {valName};");
sb.AppendLine(" return;");
sb.AppendLine(" }");
}

sb.AppendLine($" case {GetId(typeFullName)}:");
sb.AppendLine(" {");
sb.AppendLine($" value = new {typeFullName}();");
var defaultMembers = model.GetNinoTypeMembers(null);
WriteMembers(defaultMembers, "value");
sb.AppendLine(" return;");
sb.AppendLine(" }");

sb.AppendLine(" default:");
sb.AppendLine(
Expand Down
7 changes: 3 additions & 4 deletions src/Nino.Generator/Nino.Generator.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -10,17 +10,16 @@
<RootNamespace>Nino.Generator</RootNamespace>
<PackageId>Nino.Generator</PackageId>
<GeneratePackageOnBuild>true</GeneratePackageOnBuild>
<Version>2.0.3</Version>
<Version>2.0.4</Version>
<Title>Nino.Generator</Title>
<Authors>JasonXuDeveloper</Authors>
<Description>Source Generator for the high performance and low size binary serialization solution, especially for Unity.</Description>
<Copyright>JasonXuDeveloper</Copyright>
<RepositoryUrl>https://github.com/JasonXuDeveloper/Nino</RepositoryUrl>
<RepositoryType>git</RepositoryType>
<PackageTags>Nino;Serialization;Binary;Generator</PackageTags>
<PackageReleaseNotes>Nino.Serialization v2.0.3
- [Fix] Fix complilation error for special assembly names
- [Optimisation] Faster deserialisation</PackageReleaseNotes>
<PackageReleaseNotes>Nino.Serialization v2.0.4
- [Fix] Fix complilation error for subclasses having members with identical names</PackageReleaseNotes>
<PackageLicenseExpression>MIT</PackageLicenseExpression>
<AnalyzerLanguage>cs</AnalyzerLanguage>
<IncludeBuildOutput>false</IncludeBuildOutput>
Expand Down
7 changes: 3 additions & 4 deletions src/Nino/Nino.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -7,17 +7,16 @@
<IncludeContentInPack>true</IncludeContentInPack>
<PackageId>Nino</PackageId>
<GeneratePackageOnBuild>true</GeneratePackageOnBuild>
<Version>2.0.3</Version>
<Version>2.0.4</Version>
<Title>Nino</Title>
<Authors>JasonXuDeveloper</Authors>
<Description>High performance and low size binary serialization solution, especially for Unity.</Description>
<Copyright>JasonXuDeveloper</Copyright>
<RepositoryUrl>https://github.com/JasonXuDeveloper/Nino</RepositoryUrl>
<RepositoryType>git</RepositoryType>
<PackageTags>Nino;Serialization;Binary</PackageTags>
<PackageReleaseNotes>Nino.Serialization v2.0.3
- [Fix] Fix complilation error for special assembly names
- [Optimisation] Faster deserialisation</PackageReleaseNotes>
<PackageReleaseNotes>Nino.Serialization v2.0.4
- [Fix] Fix complilation error for subclasses having members with identical names</PackageReleaseNotes>
<PackageLicenseExpression>MIT</PackageLicenseExpression>
<PackageProjectUrl>https://nino.xgamedev.net/</PackageProjectUrl>
</PropertyGroup>
Expand Down

0 comments on commit ad54d55

Please sign in to comment.