@@ -137,6 +137,9 @@ private static void HandleMemberList(SyntaxNodeAnalysisContext context, Immutabl
137137 MemberDeclarationSyntax previousMember = null ;
138138 var previousSyntaxKind = SyntaxKind . None ;
139139 var previousAccessLevel = AccessLevel . NotSpecified ;
140+ bool previousIsConst = false ;
141+ bool previousIsReadonly = false ;
142+ bool previousIsStatic = false ;
140143
141144 foreach ( var member in members )
142145 {
@@ -152,8 +155,11 @@ private static void HandleMemberList(SyntaxNodeAnalysisContext context, Immutabl
152155
153156 var modifiers = member . GetModifiers ( ) ;
154157 AccessLevel currentAccessLevel = MemberOrderHelper . GetAccessLevelForOrdering ( member , modifiers ) ;
158+ bool currentIsConst = modifiers . Any ( SyntaxKind . ConstKeyword ) ;
159+ bool currentIsReadonly = modifiers . Any ( SyntaxKind . ReadOnlyKeyword ) ;
160+ bool currentIsStatic = modifiers . Any ( SyntaxKind . StaticKeyword ) ;
155161
156- if ( previousMember != null && previousAccessLevel != AccessLevel . NotSpecified )
162+ if ( previousAccessLevel != AccessLevel . NotSpecified )
157163 {
158164 bool compareAccessLevel = true ;
159165 for ( int j = 0 ; compareAccessLevel && j < accessibilityIndex ; j ++ )
@@ -169,9 +175,6 @@ private static void HandleMemberList(SyntaxNodeAnalysisContext context, Immutabl
169175 continue ;
170176
171177 case OrderingTrait . Constant :
172- // Only fields may be marked const
173- bool previousIsConst = previousMember . IsKind ( SyntaxKind . FieldDeclaration ) && previousMember . GetModifiers ( ) . Any ( SyntaxKind . ConstKeyword ) ;
174- bool currentIsConst = member . IsKind ( SyntaxKind . FieldDeclaration ) && modifiers . Any ( SyntaxKind . ConstKeyword ) ;
175178 if ( previousIsConst != currentIsConst )
176179 {
177180 compareAccessLevel = false ;
@@ -180,9 +183,6 @@ private static void HandleMemberList(SyntaxNodeAnalysisContext context, Immutabl
180183 continue ;
181184
182185 case OrderingTrait . Readonly :
183- // Only fields may be marked readonly
184- bool previousIsReadonly = previousMember . IsKind ( SyntaxKind . FieldDeclaration ) && previousMember . GetModifiers ( ) . Any ( SyntaxKind . ReadOnlyKeyword ) ;
185- bool currentIsReadonly = member . IsKind ( SyntaxKind . FieldDeclaration ) && modifiers . Any ( SyntaxKind . ReadOnlyKeyword ) ;
186186 if ( previousIsReadonly != currentIsReadonly )
187187 {
188188 compareAccessLevel = false ;
@@ -191,8 +191,6 @@ private static void HandleMemberList(SyntaxNodeAnalysisContext context, Immutabl
191191 continue ;
192192
193193 case OrderingTrait . Static :
194- bool previousIsStatic = previousMember . GetModifiers ( ) . Any ( SyntaxKind . StaticKeyword ) ;
195- bool currentIsStatic = modifiers . Any ( SyntaxKind . StaticKeyword ) ;
196194 if ( previousIsStatic != currentIsStatic )
197195 {
198196 compareAccessLevel = false ;
@@ -220,6 +218,9 @@ private static void HandleMemberList(SyntaxNodeAnalysisContext context, Immutabl
220218 previousMember = member ;
221219 previousSyntaxKind = currentSyntaxKind ;
222220 previousAccessLevel = currentAccessLevel ;
221+ previousIsConst = currentIsConst ;
222+ previousIsReadonly = currentIsReadonly ;
223+ previousIsStatic = currentIsStatic ;
223224 }
224225 }
225226 }
0 commit comments