Skip to content

Commit bdebfaa

Browse files
vmachacekdansiegel
authored andcommitted
Add method override for WithBaseCall
1 parent ceac516 commit bdebfaa

File tree

1 file changed

+13
-7
lines changed

1 file changed

+13
-7
lines changed

src/CodeGenHelpers/ConstructorBuilder.cs

+13-7
Original file line numberDiff line numberDiff line change
@@ -101,29 +101,35 @@ public ConstructorBuilder WithThisCall()
101101
}
102102

103103
public ConstructorBuilder WithThisCall(Dictionary<string, string> parameters)
104+
{
105+
WithThisCall(parameters.Select(f => (f.Key, f.Value)));
106+
return this;
107+
}
108+
109+
public ConstructorBuilder WithThisCall(IEnumerable<(string Type, string Name)> parameters)
104110
{
105111
foreach(var parameter in parameters)
106112
{
107-
this.AddParameter(parameter.Key, parameter.Value);
113+
this.AddParameter(parameter.Type, parameter.Name);
108114
}
109115

110116
_baseCall = () =>
111117
{
112-
var output = parameters.Select(x => x.Value);
118+
var output = parameters.Select(x => x.Name);
113119
return $": this({string.Join(", ", output)})";
114120
};
115121
return this;
116122
}
117123

118124
public ConstructorBuilder WithThisCall(IEnumerable<IParameterSymbol> parameters)
119125
{
120-
var dict = new Dictionary<string, string>();
126+
var list = new List<(string Type, string Name)>();
121127
foreach (var parameter in parameters ?? Array.Empty<IParameterSymbol>())
122128
{
123129
AddNamespaceImport(parameter.Type);
124-
dict.Add(parameter.Type.Name, parameter.Name);
130+
list.Add((parameter.Type.Name, parameter.Name));
125131
}
126-
return WithThisCall(dict);
132+
return WithThisCall(list);
127133
}
128134

129135
public ConstructorBuilder WithThisCall(IMethodSymbol baseConstructor)
@@ -160,11 +166,11 @@ public ConstructorBuilder WithBaseCall(IEnumerable<(string Type, string Name)> p
160166

161167
public ConstructorBuilder WithBaseCall(IEnumerable<IParameterSymbol> parameters)
162168
{
163-
var dict = new Dictionary<string, string>();
169+
var dict = new List<(string Type, string Name)>();
164170
foreach (var parameter in parameters ?? Array.Empty<IParameterSymbol>())
165171
{
166172
AddNamespaceImport(parameter.Type);
167-
dict.Add(parameter.Type.Name, parameter.Name);
173+
dict.Add((parameter.Type.Name, parameter.Name));
168174
}
169175
return WithBaseCall(dict);
170176
}

0 commit comments

Comments
 (0)