@@ -1232,7 +1232,7 @@ private async Task<IEnumerable<ArgumentSyntax>> ConvertArguments(VBasic.Syntax.A
12321232 ISymbol invocationSymbol = GetInvocationSymbol ( node . Parent ) ;
12331233 int vbPositionalArgs = node . Arguments . TakeWhile ( a => ! a . IsNamed ) . Count ( ) ;
12341234 var namedArgNames = new HashSet < string > ( node . Arguments . OfType < VBasic . Syntax . SimpleArgumentSyntax > ( ) . Where ( a => a . IsNamed ) . Select ( a => a . NameColonEquals . Name . Identifier . Text ) , StringComparer . OrdinalIgnoreCase ) ;
1235- bool afterOmitted = false ;
1235+ bool forceNamedParameters = false ;
12361236 var argumentSyntaxs = ( await node . Arguments . SelectAsync ( async ( a , i ) => await ConvertArg ( a , i ) ) )
12371237 . Where ( a => a != null ) ;
12381238
@@ -1247,9 +1247,8 @@ private async Task<IEnumerable<ArgumentSyntax>> ConvertArguments(VBasic.Syntax.A
12471247 async Task < ArgumentSyntax > ConvertArg ( VBSyntax . ArgumentSyntax a , int i )
12481248 {
12491249 if ( a . IsOmitted ) {
1250- afterOmitted = true ;
1251-
12521250 if ( invocationSymbol != null ) {
1251+ forceNamedParameters = true ;
12531252 return null ; //Prefer to skip omitted and use named parameters when the symbol is available
12541253 }
12551254
@@ -1259,7 +1258,7 @@ async Task<ArgumentSyntax> ConvertArg(VBSyntax.ArgumentSyntax a, int i)
12591258
12601259 var argumentSyntax = ( ArgumentSyntax ) await a . AcceptAsync ( TriviaConvertingExpressionVisitor ) ;
12611260
1262- if ( afterOmitted ) {
1261+ if ( forceNamedParameters ) {
12631262 var elementAtOrDefault = invocationSymbol . GetParameters ( ) . ElementAt ( i ) . Name ;
12641263 return argumentSyntax . WithNameColon ( SyntaxFactory . NameColon ( elementAtOrDefault ) ) ;
12651264 }
@@ -1339,7 +1338,7 @@ private static bool IsArrayElementAccess(IOperation operation)
13391338 /// </summary>
13401339 private static bool ProbablyNotAMethodCall ( VBasic . Syntax . InvocationExpressionSyntax node , ISymbol symbol , ITypeSymbol symbolReturnType )
13411340 {
1342- return ! ( symbol is IMethodSymbol ) && symbolReturnType . IsErrorType ( ) && node . Expression is VBasic . Syntax . IdentifierNameSyntax && node . ArgumentList ? . Arguments . Any ( ) == true ;
1341+ return ! node . IsParentKind ( VBasic . SyntaxKind . CallStatement ) && ! ( symbol is IMethodSymbol ) && symbolReturnType . IsErrorType ( ) && node . Expression is VBasic . Syntax . IdentifierNameSyntax && node . ArgumentList ? . Arguments . Any ( ) == true ;
13431342 }
13441343
13451344 private async Task < ArgumentListSyntax > ConvertArgumentListOrEmpty ( VBasic . Syntax . ArgumentListSyntax argumentListSyntax )
0 commit comments