Skip to content

Commit

Permalink
Avoided use of the constructor outside of conversion operators (used …
Browse files Browse the repository at this point in the history
…only in newly added methods). (#14)
  • Loading branch information
Timovzl authored Mar 21, 2023
1 parent 2ba6579 commit 5ef31b1
Show file tree
Hide file tree
Showing 2 changed files with 3 additions and 3 deletions.
4 changes: 2 additions & 2 deletions DomainModeling.Generator/IdentityGenerator.cs
Original file line number Diff line number Diff line change
Expand Up @@ -302,9 +302,9 @@ private static void GenerateSource(SourceProductionContext context, Generatable
if (idType.IsOrImplementsInterface(interf => interf.Name == "ISpanParsable" && interf.ContainingNamespace.HasFullName("System") && interf.Arity == 1 && interf.TypeArguments[0].Equals(idType, SymbolEqualityComparer.Default), out _))
propertyNameParseStatement = $"return reader.GetParsedString<{idTypeName}>(System.Globalization.CultureInfo.InvariantCulture);";
else if (underlyingType.IsType<string>())
propertyNameParseStatement = $"return new {idTypeName}(reader.GetString()!);";
propertyNameParseStatement = $"return ({idTypeName})reader.GetString()!;";
else if (!underlyingType.IsGeneric() && underlyingType.IsOrImplementsInterface(interf => interf.Name == "ISpanParsable" && interf.ContainingNamespace.HasFullName("System") && interf.Arity == 1 && interf.TypeArguments[0].Equals(underlyingType, SymbolEqualityComparer.Default), out _))
propertyNameParseStatement = $"return new {idTypeName}(reader.GetParsedString<{underlyingType.ContainingNamespace}.{underlyingType.Name}>(System.Globalization.CultureInfo.InvariantCulture));";
propertyNameParseStatement = $"return ({idTypeName})reader.GetParsedString<{underlyingType.ContainingNamespace}.{underlyingType.Name}>(System.Globalization.CultureInfo.InvariantCulture);";

var propertyNameFormatStatement = "writer.WritePropertyName(value.ToString());";
if (idType.IsOrImplementsInterface(interf => interf.Name == "ISpanFormattable" && interf.ContainingNamespace.HasFullName("System") && interf.Arity == 0, out _))
Expand Down
2 changes: 1 addition & 1 deletion DomainModeling.Tests/IdentityTests.cs
Original file line number Diff line number Diff line change
Expand Up @@ -582,7 +582,7 @@ public override void Write(System.Text.Json.Utf8JsonWriter writer, FullySelfImpl
#if NET7_0_OR_GREATER
public override FullySelfImplementedIdentity ReadAsPropertyName(ref System.Text.Json.Utf8JsonReader reader, Type typeToConvert, System.Text.Json.JsonSerializerOptions options)
{
return new FullySelfImplementedIdentity(reader.GetParsedString<int>(CultureInfo.InvariantCulture));
return (FullySelfImplementedIdentity)reader.GetParsedString<int>(CultureInfo.InvariantCulture);
}

public override void WriteAsPropertyName(System.Text.Json.Utf8JsonWriter writer, FullySelfImplementedIdentity value, System.Text.Json.JsonSerializerOptions options)
Expand Down

0 comments on commit 5ef31b1

Please sign in to comment.