Fix Default value (#19)

This commit is contained in:
Stef Heyenrath
2021-07-31 20:10:46 +02:00
committed by GitHub
parent 0802766c66
commit a1d23422dc
9 changed files with 137 additions and 113 deletions
@@ -24,11 +24,11 @@ namespace ProxyInterfaceSourceGenerator.FileGenerators
return GetReplacedType(property.Type, out isReplaced);
}
protected string GetReplacedType(ITypeSymbol property, out bool isReplaced)
protected string GetReplacedType(ITypeSymbol typeSymbol, out bool isReplaced)
{
isReplaced = false;
var typeSymbolAsString = property.ToString();
var typeSymbolAsString = typeSymbol.ToString();
var existing = _context.CandidateInterfaces.Values.FirstOrDefault(x => x.TypeName == typeSymbolAsString);
if (existing is not null)
@@ -42,7 +42,7 @@ namespace ProxyInterfaceSourceGenerator.FileGenerators
return existing.InterfaceName;
}
if (property is INamedTypeSymbol namedTypedSymbol)
if (typeSymbol is INamedTypeSymbol namedTypedSymbol)
{
var propertyTypeAsStringToBeModified = typeSymbolAsString;
foreach (var typeArgument in namedTypedSymbol.TypeArguments)
@@ -65,7 +65,6 @@ namespace ProxyInterfaceSourceGenerator.FileGenerators
return propertyTypeAsStringToBeModified;
}
return typeSymbolAsString;
}
@@ -89,7 +89,7 @@ namespace {ns}
foreach (var ps in method.Parameters)
{
var type = ps.GetTypeEnum() == TypeEnum.Complex ? GetParameterType(ps, out _) : ps.Type.ToString();
methodParameters.Add($"{ps.GetParamsPrefix()}{ps.GetRefPrefix()}{type} {ps.SanitizedName()}");
methodParameters.Add($"{ps.GetParamsPrefix()}{ps.GetRefPrefix()}{type} {ps.GetSanitizedName()}{ps.GetDefaultValue()}");
}
str.AppendLine($" {GetReplacedType(method.ReturnType, out _)} {method.Name}({string.Join(", ", methodParameters)});");
@@ -129,17 +129,19 @@ namespace {ns}
foreach (var ps in method.Parameters)
{
if (ps.GetTypeEnum() == TypeEnum.Complex)
{
var type = GetParameterType(ps, out _);
methodParameters.Add($"{ps.GetParamsPrefix()}{ps.GetRefPrefix()}{type} {ps.SanitizedName()}");
}
else
{
methodParameters.Add($"{ps.GetParamsPrefix()}{ps.GetRefPrefix()}{ps.Type} {ps.SanitizedName()}");
}
var type = GetParameterType(ps, out _);
//if (ps.GetTypeEnum() == TypeEnum.Complex)
//{
// var type = GetParameterType(ps, out _);
// methodParameters.Add($"{ps.GetParamsPrefix()}{ps.GetRefPrefix()}{type} {ps.GetSanitizedName()}{ps.GetDefaultValue()}");
//}
//else
//{
// methodParameters.Add($"{ps.GetParamsPrefix()}{ps.GetRefPrefix()}{ps.Type} {ps.GetSanitizedName()}{ps.GetDefaultValue()}");
//}
invokeParameters.Add($"{ps.GetRefPrefix()}{ps.SanitizedName()}_");
methodParameters.Add($"{ps.GetParamsPrefix()}{ps.GetRefPrefix()}{type} {ps.GetSanitizedName()}{ps.GetDefaultValue()}");
invokeParameters.Add($"{ps.GetRefPrefix()}{ps.GetSanitizedName()}_");
}
string returnTypeAsString = GetReplacedType(method.ReturnType, out var returnIsReplaced);
@@ -148,7 +150,7 @@ namespace {ns}
str.AppendLine(" {");
foreach (var ps in method.Parameters)
{
string normalOrMap = $" = {ps.SanitizedName()}";
string normalOrMap = $" = {ps.GetSanitizedName()}";
if (ps.RefKind == RefKind.Out)
{
normalOrMap = string.Empty;
@@ -158,11 +160,11 @@ namespace {ns}
var type = GetParameterType(ps, out var isReplaced);
if (isReplaced)
{
normalOrMap = $" = _mapper.Map<{ps.Type}>({ps.SanitizedName()})";
normalOrMap = $" = _mapper.Map<{ps.Type}>({ps.GetSanitizedName()})";
}
}
str.AppendLine($" {ps.Type} {ps.SanitizedName()}_{normalOrMap};");
str.AppendLine($" {ps.Type} {ps.GetSanitizedName()}_{normalOrMap};");
}
#pragma warning disable RS1024 // Compare symbols correctly
@@ -181,17 +183,17 @@ namespace {ns}
foreach (var ps in method.Parameters.Where(p => p.RefKind == RefKind.Out))
{
string normalOrMap = $" = {ps.SanitizedName()}_";
string normalOrMap = $" = {ps.GetSanitizedName()}_";
if (ps.GetTypeEnum() == TypeEnum.Complex)
{
var type = GetParameterType(ps, out var isReplaced);
if (isReplaced)
{
normalOrMap = $" = _mapper.Map<{type}>({ps.SanitizedName()}_)";
normalOrMap = $" = _mapper.Map<{type}>({ps.GetSanitizedName()}_)";
}
}
str.AppendLine($" {ps.SanitizedName()}{normalOrMap};");
str.AppendLine($" {ps.GetSanitizedName()}{normalOrMap};");
}
if (returnTypeAsString != "void")