@@ -685,7 +685,8 @@ public override async Task<CSharpSyntaxNode> VisitPropertyStatement(VBSyntax.Pro
685685 var convertibleModifiers = node . Modifiers . Where ( m => ! m . IsKind ( VBasic . SyntaxKind . ReadOnlyKeyword , VBasic . SyntaxKind . WriteOnlyKeyword , VBasic . SyntaxKind . DefaultKeyword ) ) ;
686686 var modifiers = CommonConversions . ConvertModifiers ( node , convertibleModifiers . ToList ( ) , GetMemberContext ( node ) ) ;
687687 var isIndexer = CommonConversions . IsDefaultIndexer ( node ) ;
688- var accessedThroughMyClass = IsAccessedThroughMyClass ( node , node . Identifier , ModelExtensions . GetDeclaredSymbol ( _semanticModel , node ) ) ;
688+ var nodeSymbol = ModelExtensions . GetDeclaredSymbol ( _semanticModel , node ) ;
689+ var accessedThroughMyClass = IsAccessedThroughMyClass ( node , node . Identifier , nodeSymbol ) ;
689690 bool hasImplementation = ! node . Modifiers . Any ( m => m . IsKind ( VBasic . SyntaxKind . MustOverrideKeyword ) ) && node . GetAncestor < VBSyntax . InterfaceBlockSyntax > ( ) == null ;
690691
691692 var initializer = ( EqualsValueClauseSyntax ) await node . Initializer . AcceptAsync ( _triviaConvertingExpressionVisitor ) ;
@@ -730,7 +731,7 @@ public override async Task<CSharpSyntaxNode> VisitPropertyStatement(VBSyntax.Pro
730731 )
731732 ) ) ;
732733 } else {
733- accessors = ConvertSimpleAccessors ( isWriteOnly , isReadonly , hasImplementation ) ;
734+ accessors = ConvertSimpleAccessors ( isWriteOnly , isReadonly , hasImplementation , nodeSymbol . DeclaredAccessibility ) ;
734735 }
735736
736737
@@ -806,19 +807,19 @@ private string AddRealPropertyDelegatingToMyClassVersion(VBSyntax.PropertyStatem
806807 return csIndentifierName ;
807808 }
808809
809- private static AccessorListSyntax ConvertSimpleAccessors ( bool isWriteOnly , bool isReadonly , bool hasImplementation )
810+ private static AccessorListSyntax ConvertSimpleAccessors ( bool isWriteOnly , bool isReadonly , bool hasImplementation , Accessibility declaredAccessibility )
810811 {
811812 AccessorListSyntax accessors ;
812813 var getAccessor = SyntaxFactory . AccessorDeclaration ( Microsoft . CodeAnalysis . CSharp . SyntaxKind . GetAccessorDeclaration )
813814 . WithSemicolonToken ( SemicolonToken ) ;
814815 var setAccessor = SyntaxFactory . AccessorDeclaration ( Microsoft . CodeAnalysis . CSharp . SyntaxKind . SetAccessorDeclaration )
815816 . WithSemicolonToken ( SemicolonToken ) ;
816- if ( isWriteOnly )
817+ if ( isWriteOnly && declaredAccessibility != Accessibility . Private )
817818 {
818819 getAccessor = getAccessor . AddModifiers ( SyntaxFactory . Token ( Microsoft . CodeAnalysis . CSharp . SyntaxKind . PrivateKeyword ) ) ;
819820 }
820821
821- if ( isReadonly )
822+ if ( isReadonly && declaredAccessibility != Accessibility . Private )
822823 {
823824 setAccessor = setAccessor . AddModifiers ( SyntaxFactory . Token ( Microsoft . CodeAnalysis . CSharp . SyntaxKind . PrivateKeyword ) ) ;
824825 }
0 commit comments