@@ -1153,13 +1153,13 @@ private IEnumerable<ArgumentSyntax> ConvertArguments(VBSyntax.ArgumentListSyntax
11531153
11541154 public override CSharpSyntaxNode VisitSimpleArgument ( VBSyntax . SimpleArgumentSyntax node )
11551155 {
1156- int argId = ( ( VBSyntax . ArgumentListSyntax ) node . Parent ) . Arguments . IndexOf ( node ) ;
11571156 var invocation = node . Parent . Parent ;
11581157 if ( invocation is VBSyntax . ArrayCreationExpressionSyntax )
11591158 return node . Expression . Accept ( TriviaConvertingVisitor ) ;
11601159 var symbol = GetInvocationSymbol ( invocation ) ;
11611160 SyntaxToken token = default ( SyntaxToken ) ;
11621161 if ( symbol != null ) {
1162+ int argId = ( ( VBSyntax . ArgumentListSyntax ) node . Parent ) . Arguments . IndexOf ( node ) ;
11631163 var parameterKinds = symbol . GetParameters ( ) . Select ( param => param . RefKind ) . ToList ( ) ;
11641164 //WARNING: If named parameters can reach here it won't work properly for them
11651165 var refKind = argId >= parameterKinds . Count ? RefKind . None : parameterKinds [ argId ] ;
@@ -1500,6 +1500,31 @@ private static CSharpSyntaxNode CreateLambdaExpression(ParameterListSyntax param
15001500
15011501 #region Type Name / Modifier
15021502
1503+ public override CSharpSyntaxNode VisitTupleType ( VBSyntax . TupleTypeSyntax node )
1504+ {
1505+ var elements = node . Elements . Select ( e => ( TupleElementSyntax ) e . Accept ( TriviaConvertingVisitor ) ) ;
1506+ return SyntaxFactory . TupleType ( SyntaxFactory . SeparatedList ( elements ) ) ;
1507+ }
1508+
1509+ public override CSharpSyntaxNode VisitTypedTupleElement ( VBSyntax . TypedTupleElementSyntax node )
1510+ {
1511+ return SyntaxFactory . TupleElement ( ( TypeSyntax ) node . Type . Accept ( TriviaConvertingVisitor ) ) ;
1512+ }
1513+
1514+ public override CSharpSyntaxNode VisitNamedTupleElement ( VBSyntax . NamedTupleElementSyntax node )
1515+ {
1516+ return SyntaxFactory . TupleElement ( ( TypeSyntax ) node . AsClause . Type . Accept ( TriviaConvertingVisitor ) , CommonConversions . ConvertIdentifier ( node . Identifier ) ) ;
1517+ }
1518+
1519+ public override CSharpSyntaxNode VisitTupleExpression ( VBSyntax . TupleExpressionSyntax node )
1520+ {
1521+ var args = node . Arguments . Select ( a => {
1522+ var expr = ( ExpressionSyntax ) a . Expression . Accept ( TriviaConvertingVisitor ) ;
1523+ return SyntaxFactory . Argument ( expr ) ;
1524+ } ) ;
1525+ return SyntaxFactory . TupleExpression ( SyntaxFactory . SeparatedList ( args ) ) ;
1526+ }
1527+
15031528 public override CSharpSyntaxNode VisitPredefinedType ( VBSyntax . PredefinedTypeSyntax node )
15041529 {
15051530 if ( SyntaxTokenExtensions . IsKind ( node . Keyword , VBasic . SyntaxKind . DateKeyword ) ) {
0 commit comments