@@ -818,7 +818,7 @@ private void AddRemainingInterfaceDeclarations(MethodDeclarationSyntax method, S
818818 GetMethodId ( interfaceImplement . Name ) :
819819 SetMethodId ( interfaceImplement . Name ) ) ;
820820 var interfaceMethodDeclParams = new MethodDeclarationParameters ( attributes , filteredModifiers ,
821- method . ReturnType , method . TypeParameterList , MakeOptionalParametersRequired ( method . ParameterList ) , method . ConstraintClauses , clause , identifier ) ;
821+ method . ReturnType , method . TypeParameterList , method . ParameterList , method . ConstraintClauses , clause , identifier ) ;
822822
823823 AddInterfaceMemberDeclarations ( interfaceImplement , additionalDeclarations , interfaceMethodDeclParams ) ;
824824 } ) ;
@@ -1173,12 +1173,10 @@ public override async Task<CSharpSyntaxNode> VisitMethodStatement(VBSyntax.Metho
11731173 directlyConvertedCsIdentifier = hasExplicitInterfaceImplementation ? directlyConvertedCsIdentifier : CommonConversions . ConvertIdentifier ( node . Identifier ) ;
11741174
11751175 if ( hasExplicitInterfaceImplementation ) {
1176-
1177- var requiredParameterList = MakeOptionalParametersRequired ( parameterList ) ;
1178- var delegatingClause = GetDelegatingClause ( directlyConvertedCsIdentifier , requiredParameterList , false ) ;
1176+ var delegatingClause = GetDelegatingClause ( directlyConvertedCsIdentifier , parameterList , false ) ;
11791177 var explicitInterfaceModifiers = convertedModifiers . RemoveWhere ( m => m . IsCsMemberVisibility ( ) || m . IsKind ( CSSyntaxKind . VirtualKeyword , CSSyntaxKind . AbstractKeyword ) || m . IsKind ( CSSyntaxKind . OverrideKeyword , CSSyntaxKind . NewKeyword ) ) ;
11801178
1181- var interfaceDeclParams = new MethodDeclarationParameters ( attributes , explicitInterfaceModifiers , returnType , typeParameters , requiredParameterList , constraints , delegatingClause ) ;
1179+ var interfaceDeclParams = new MethodDeclarationParameters ( attributes , explicitInterfaceModifiers , returnType , typeParameters , parameterList , constraints , delegatingClause ) ;
11821180 AddInterfaceMemberDeclarations ( declaredSymbol . ExplicitInterfaceImplementations , additionalDeclarations , interfaceDeclParams ) ;
11831181 }
11841182
@@ -1273,41 +1271,6 @@ private void AddMemberDeclaration(ICollection<MemberDeclarationSyntax> additiona
12731271 additionalDeclarations . Add ( declaration ) ;
12741272 }
12751273
1276-
1277- private static ParameterListSyntax MakeOptionalParametersRequired ( ParameterListSyntax parameterList )
1278- {
1279- if ( parameterList == null ) return null ;
1280-
1281- var nonOptionalParameters = parameterList . Parameters . Select ( ConvertOptionalParameter ) ;
1282-
1283- var separatedSyntaxList = SyntaxFactory . SeparatedList ( nonOptionalParameters ) ;
1284- var newParameterList = parameterList . WithParameters ( separatedSyntaxList ) ;
1285- return newParameterList ;
1286- }
1287-
1288- private static ParameterSyntax ConvertOptionalParameter ( ParameterSyntax parameter )
1289- {
1290- var optionalAttributes = new List < string > { nameof ( OptionalAttribute ) . GetAttributeIdentifier ( ) ,
1291- nameof ( DefaultParameterValueAttribute ) . GetAttributeIdentifier ( ) } ;
1292-
1293- var attrListsToRemove = parameter . AttributeLists . SingleOrDefault ( aList => aList . Attributes
1294- . All ( a =>
1295- {
1296- string attrIdentifier = string . Empty ;
1297-
1298- if ( a . Name is IdentifierNameSyntax identifierNameSyntax ) {
1299- attrIdentifier = identifierNameSyntax . Identifier . Text ;
1300- } else if ( a . Name is AliasQualifiedNameSyntax aliasQualifiedNameSyntax ) {
1301- attrIdentifier = aliasQualifiedNameSyntax . Alias . Identifier . Text ;
1302- }
1303-
1304- return optionalAttributes . Contains ( attrIdentifier ) ;
1305- } ) ) ;
1306-
1307- var newAttrLists = parameter . AttributeLists . Remove ( attrListsToRemove ) ;
1308- return parameter . WithDefault ( null ) . WithAttributeLists ( newAttrLists ) ;
1309- }
1310-
13111274 private static ArrowExpressionClauseSyntax GetDelegatingClause ( SyntaxToken csIdentifier ,
13121275 ParameterListSyntax parameterList , bool isSetAccessor )
13131276 {
0 commit comments