File tree 2 files changed +49
-0
lines changed
src/DendroDocs.Tool/Analyzers
tests/DendroDocs.Tool.Tests
2 files changed +49
-0
lines changed Original file line number Diff line number Diff line change @@ -376,6 +376,15 @@ private PropertyDescription CreatePropertyDescription(IPropertySymbol property)
376
376
{
377
377
var modifiers = property . IsReadOnly ? Modifier . Readonly : 0 ;
378
378
379
+ modifiers |= property . DeclaredAccessibility switch
380
+ {
381
+ Accessibility . Public => Modifier . Public ,
382
+ Accessibility . Protected => Modifier . Protected ,
383
+ Accessibility . Internal => Modifier . Internal ,
384
+ Accessibility . Private => Modifier . Private ,
385
+ _ => 0
386
+ } ;
387
+
379
388
var propertyDescription = new PropertyDescription ( property . Type . ToDisplayString ( ) , property . Name )
380
389
{
381
390
Modifiers = modifiers
Original file line number Diff line number Diff line change @@ -105,4 +105,44 @@ internal record struct NestedC {};
105
105
// Assert
106
106
types [ 1 ] . Modifiers . Should ( ) . HaveFlag ( modifier ) ;
107
107
}
108
+
109
+ [ TestMethod ]
110
+ public void RecordPropertiesShouldHaveCorrectAccessModifiersBasedOnDefault ( )
111
+ {
112
+ // Assign
113
+ var source =
114
+ $$ """
115
+ public record Person(string FirstName, string LastName)
116
+ {
117
+ }
118
+ """ ;
119
+
120
+ // Act
121
+ var types = TestHelper . VisitSyntaxTree ( source , "CS0067" ) ;
122
+
123
+ // Assert
124
+ types [ 0 ] . Properties [ 0 ] . Modifiers . Should ( ) . HaveFlag ( Modifier . Protected ) ;
125
+ types [ 0 ] . Properties [ 1 ] . Modifiers . Should ( ) . HaveFlag ( Modifier . Public ) ;
126
+ types [ 0 ] . Properties [ 2 ] . Modifiers . Should ( ) . HaveFlag ( Modifier . Public ) ;
127
+ }
128
+
129
+ [ TestMethod ]
130
+ public void SealedRecordPropertiesShouldHaveCorrectAccessModifiers ( )
131
+ {
132
+ // Assign
133
+ var source =
134
+ $$ """
135
+ public sealed record Person(string FirstName, string LastName)
136
+ {
137
+ }
138
+ """ ;
139
+
140
+ // Act
141
+ var types = TestHelper . VisitSyntaxTree ( source , "CS0067" ) ;
142
+
143
+ // Assert
144
+ types [ 0 ] . Properties [ 0 ] . Modifiers . Should ( ) . HaveFlag ( Modifier . Private ) ;
145
+ types [ 0 ] . Properties [ 1 ] . Modifiers . Should ( ) . HaveFlag ( Modifier . Public ) ;
146
+ types [ 0 ] . Properties [ 2 ] . Modifiers . Should ( ) . HaveFlag ( Modifier . Public ) ;
147
+ }
108
148
}
You can’t perform that action at this time.
0 commit comments