@@ -305,7 +305,10 @@ private MemberDeclarationSyntax[] GetAdditionalDeclarations(VBSyntax.StatementSy
305305 private async Task < MemberDeclarationSyntax > ConvertMemberAsync ( VBSyntax . StatementSyntax member )
306306 {
307307 try {
308- return await member . AcceptAsync < MemberDeclarationSyntax > ( TriviaConvertingDeclarationVisitor ) ;
308+ var sourceTriviaMapKind = member is VBSyntax . PropertyBlockSyntax propBlock && ShouldConvertAsParameterizedProperty ( propBlock . PropertyStatement )
309+ ? SourceTriviaMapKind . SubNodesOnly
310+ : SourceTriviaMapKind . All ;
311+ return await member . AcceptAsync < MemberDeclarationSyntax > ( TriviaConvertingDeclarationVisitor , sourceTriviaMapKind ) ;
309312 } catch ( Exception e ) {
310313 return CreateErrorMember ( member , e ) ;
311314 }
@@ -938,7 +941,30 @@ private static AccessorListSyntax ConvertSimpleAccessors(bool isWriteOnly, bool
938941
939942 public override async Task < CSharpSyntaxNode > VisitPropertyBlock ( VBSyntax . PropertyBlockSyntax node )
940943 {
941- return await node . PropertyStatement . AcceptAsync < CSharpSyntaxNode > ( TriviaConvertingDeclarationVisitor , SourceTriviaMapKind . SubNodesOnly ) ;
944+ var converted = await node . PropertyStatement . AcceptAsync < CSharpSyntaxNode > ( TriviaConvertingDeclarationVisitor , SourceTriviaMapKind . SubNodesOnly ) ;
945+
946+ if ( converted is MethodDeclarationSyntax ) {
947+ var first = ( MethodDeclarationSyntax ) converted ;
948+
949+ var firstCsConvertedToken = first . GetFirstToken ( ) ;
950+ var firstVbSourceToken = node . GetFirstToken ( ) ;
951+ first = first . ReplaceToken ( firstCsConvertedToken , firstCsConvertedToken . WithSourceMappingFrom ( firstVbSourceToken ) ) ;
952+
953+ _additionalDeclarations . TryGetValue ( node , out var members ) ;
954+ var last = members ? . OfType < MethodDeclarationSyntax > ( ) . LastOrDefault ( ) ?? first ;
955+ var lastIx = members . ToList ( ) . IndexOf ( last ) ;
956+ var lastIsFirst = lastIx < 0 ;
957+ var lastCsConvertedToken = last . GetLastToken ( ) ;
958+ var lastVbSourceToken = node . GetLastToken ( ) ;
959+ last = last . ReplaceToken ( lastCsConvertedToken , lastCsConvertedToken . WithSourceMappingFrom ( lastVbSourceToken ) ) ;
960+
961+ converted = lastIsFirst ? last : first ;
962+ if ( ! lastIsFirst ) {
963+ members ! [ lastIx ] = last ;
964+ }
965+ }
966+
967+ return converted ;
942968 }
943969
944970 public override async Task < CSharpSyntaxNode > VisitAccessorBlock ( VBSyntax . AccessorBlockSyntax node )
0 commit comments