Skip to content

Commit d686ca0

Browse files
Extract extra local function
Hopefully this stops someone tweaking the logic and forgetting to remove the parameter - there's already enough mutation of state going on with the forceNamedParameters aspect
1 parent a90b9db commit d686ca0

1 file changed

Lines changed: 7 additions & 3 deletions

File tree

CodeConverter/CSharp/ExpressionNodeVisitor.cs

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1731,18 +1731,22 @@ async Task<ArgumentSyntax> ConvertArg(VBSyntax.ArgumentSyntax arg, int argIndex)
17311731
{
17321732
var argName = arg is VBSyntax.SimpleArgumentSyntax { IsNamed: true } namedArg ? namedArg.NameColonEquals.Name.Identifier.Text : null;
17331733
var parameterSymbol = invocationSymbol?.GetParameters().GetArgument(argName, argIndex);
1734+
var convertedArg = await ConvertArgForParameter(arg, parameterSymbol);
17341735

1735-
if (parameterSymbol != null) {
1736+
if (convertedArg is not null && parameterSymbol is not null) {
17361737
processedParameters.Add(parameterSymbol.Name);
17371738
}
17381739

1740+
return convertedArg;
1741+
}
1742+
1743+
async Task<ArgumentSyntax> ConvertArgForParameter(VBSyntax.ArgumentSyntax arg, IParameterSymbol parameterSymbol)
1744+
{
17391745
if (arg.IsOmitted) {
17401746
if (invocationSymbol != null && !invocationHasOverloads) {
17411747
forceNamedParameters = true;
1742-
processedParameters.Remove(parameterSymbol?.Name);
17431748
return null; //Prefer to skip omitted and use named parameters when the symbol has only one overload
17441749
}
1745-
17461750
return ConvertOmittedArgument(parameterSymbol);
17471751
}
17481752

0 commit comments

Comments
 (0)