@@ -111,257 +111,151 @@ private static void HandleArrayCreationExpression(SyntaxNodeAnalysisContext cont
111111 continue ;
112112 }
113113
114- var lastSize = arrayRankSpecifierSyntax . Sizes
115- . Last ( ) ;
114+ var lastSize = arrayRankSpecifierSyntax . Sizes . Last ( ) ;
116115
117- if ( ! arrayRankSpecifierSyntax . CloseBracketToken . IsMissing )
118- {
119- CheckIfLocationOfLastArgumentOrParameterAndCloseTokenAreTheSame (
120- context ,
121- lastSize ,
122- arrayRankSpecifierSyntax . CloseBracketToken ) ;
123- }
116+ CheckIfLocationOfLastArgumentOrParameterAndCloseTokenAreTheSame (
117+ context ,
118+ lastSize ,
119+ arrayRankSpecifierSyntax . CloseBracketToken ) ;
124120 }
125121 }
126122
127123 private static void HandleParenthesizedLambdaExpression ( SyntaxNodeAnalysisContext context )
128124 {
129125 var lambdaExpressionSyntax = ( ParenthesizedLambdaExpressionSyntax ) context . Node ;
130-
131- if ( lambdaExpressionSyntax . ParameterList == null ||
132- lambdaExpressionSyntax . ParameterList . IsMissing ||
133- ! lambdaExpressionSyntax . ParameterList . Parameters . Any ( ) )
134- {
135- return ;
136- }
137-
138- var lastParameter = lambdaExpressionSyntax . ParameterList
139- . Parameters
140- . Last ( ) ;
141-
142- if ( ! lambdaExpressionSyntax . ParameterList . CloseParenToken . IsMissing )
143- {
144- CheckIfLocationOfLastArgumentOrParameterAndCloseTokenAreTheSame (
145- context ,
146- lastParameter ,
147- lambdaExpressionSyntax . ParameterList . CloseParenToken ) ;
148- }
126+ CheckParameterList ( context , lambdaExpressionSyntax . ParameterList ) ;
149127 }
150128
151129 private static void HandleAnonymousMethodExpression ( SyntaxNodeAnalysisContext context )
152130 {
153131 var anonymousMethod = ( AnonymousMethodExpressionSyntax ) context . Node ;
154-
155- if ( anonymousMethod . ParameterList == null ||
156- anonymousMethod . ParameterList . IsMissing ||
157- ! anonymousMethod . ParameterList . Parameters . Any ( ) )
158- {
159- return ;
160- }
161-
162- var lastParameter = anonymousMethod . ParameterList
163- . Parameters
164- . Last ( ) ;
165-
166- if ( ! anonymousMethod . ParameterList . CloseParenToken . IsMissing )
167- {
168- CheckIfLocationOfLastArgumentOrParameterAndCloseTokenAreTheSame (
169- context ,
170- lastParameter ,
171- anonymousMethod . ParameterList . CloseParenToken ) ;
172- }
132+ CheckParameterList ( context , anonymousMethod . ParameterList ) ;
173133 }
174134
175135 private static void HandleAttribute ( SyntaxNodeAnalysisContext context )
176136 {
177137 var attribute = ( AttributeSyntax ) context . Node ;
138+ var argumentList = attribute . ArgumentList ;
178139
179- if ( attribute . ArgumentList == null ||
180- attribute . ArgumentList . IsMissing ||
181- ! attribute . ArgumentList . Arguments . Any ( ) )
140+ if ( argumentList == null || argumentList . IsMissing || ! argumentList . Arguments . Any ( ) )
182141 {
183142 return ;
184143 }
185144
186- var lastArgument = attribute . ArgumentList
187- . Arguments
188- . Last ( ) ;
145+ var lastParameter = argumentList . Arguments . Last ( ) ;
189146
190- if ( ! attribute . ArgumentList . CloseParenToken . IsMissing )
191- {
192- CheckIfLocationOfLastArgumentOrParameterAndCloseTokenAreTheSame (
193- context ,
194- lastArgument ,
195- attribute . ArgumentList . CloseParenToken ) ;
196- }
147+ CheckIfLocationOfLastArgumentOrParameterAndCloseTokenAreTheSame (
148+ context ,
149+ lastParameter ,
150+ argumentList . CloseParenToken ) ;
197151 }
198152
199153 private static void HandleDelegateDeclaration ( SyntaxNodeAnalysisContext context )
200154 {
201155 var delegateDeclaration = ( DelegateDeclarationSyntax ) context . Node ;
202-
203- if ( delegateDeclaration . ParameterList == null ||
204- delegateDeclaration . ParameterList . IsMissing ||
205- ! delegateDeclaration . ParameterList . Parameters . Any ( ) )
206- {
207- return ;
208- }
209-
210- var lastParameter = delegateDeclaration . ParameterList
211- . Parameters
212- . Last ( ) ;
213-
214- if ( ! delegateDeclaration . ParameterList . CloseParenToken . IsMissing )
215- {
216- CheckIfLocationOfLastArgumentOrParameterAndCloseTokenAreTheSame (
217- context ,
218- lastParameter ,
219- delegateDeclaration . ParameterList . CloseParenToken ) ;
220- }
156+ CheckParameterList ( context , delegateDeclaration . ParameterList ) ;
221157 }
222158
223159 private static void HandleElementAccessExpression ( SyntaxNodeAnalysisContext context )
224160 {
225161 var elementAccess = ( ElementAccessExpressionSyntax ) context . Node ;
162+ var argumentList = elementAccess . ArgumentList ;
226163
227- if ( elementAccess . ArgumentList == null ||
228- elementAccess . ArgumentList . IsMissing ||
229- ! elementAccess . ArgumentList . Arguments . Any ( ) )
164+ if ( argumentList == null || argumentList . IsMissing || ! argumentList . Arguments . Any ( ) )
230165 {
231166 return ;
232167 }
233168
234- var lastArgument = elementAccess . ArgumentList
235- . Arguments
236- . Last ( ) ;
169+ var lastParameter = argumentList . Arguments . Last ( ) ;
237170
238- if ( ! elementAccess . ArgumentList . CloseBracketToken . IsMissing && ! lastArgument . IsMissing )
239- {
240- CheckIfLocationOfLastArgumentOrParameterAndCloseTokenAreTheSame (
241- context ,
242- lastArgument ,
243- elementAccess . ArgumentList . CloseBracketToken ) ;
244- }
171+ CheckIfLocationOfLastArgumentOrParameterAndCloseTokenAreTheSame (
172+ context ,
173+ lastParameter ,
174+ argumentList . CloseBracketToken ) ;
245175 }
246176
247177 private static void HandleInvocationExpression ( SyntaxNodeAnalysisContext context )
248178 {
249179 var invocationExpression = ( InvocationExpressionSyntax ) context . Node ;
250-
251- if ( invocationExpression . ArgumentList == null ||
252- invocationExpression . ArgumentList . IsMissing ||
253- ! invocationExpression . ArgumentList . Arguments . Any ( ) )
254- {
255- return ;
256- }
257-
258- var lastArgument = invocationExpression . ArgumentList
259- . Arguments
260- . Last ( ) ;
261-
262- if ( ! invocationExpression . ArgumentList . CloseParenToken . IsMissing &&
263- ! lastArgument . IsMissing )
264- {
265- CheckIfLocationOfLastArgumentOrParameterAndCloseTokenAreTheSame (
266- context ,
267- lastArgument ,
268- invocationExpression . ArgumentList . CloseParenToken ) ;
269- }
180+ CheckArgumentList ( context , invocationExpression . ArgumentList ) ;
270181 }
271182
272183 private static void HandleObjectCreationExpression ( SyntaxNodeAnalysisContext context )
273184 {
274185 var objectCreation = ( ObjectCreationExpressionSyntax ) context . Node ;
275-
276- if ( objectCreation . ArgumentList == null ||
277- objectCreation . ArgumentList . IsMissing ||
278- ! objectCreation . ArgumentList . Arguments . Any ( ) )
279- {
280- return ;
281- }
282-
283- var lastArgument = objectCreation . ArgumentList
284- . Arguments
285- . Last ( ) ;
286-
287- if ( ! objectCreation . ArgumentList . CloseParenToken . IsMissing &&
288- ! lastArgument . IsMissing )
289- {
290- CheckIfLocationOfLastArgumentOrParameterAndCloseTokenAreTheSame (
291- context ,
292- lastArgument ,
293- objectCreation . ArgumentList . CloseParenToken ) ;
294- }
186+ CheckArgumentList ( context , objectCreation . ArgumentList ) ;
295187 }
296188
297189 private static void HandleIndexerDeclaration ( SyntaxNodeAnalysisContext context )
298190 {
299191 var indexerDeclaration = ( IndexerDeclarationSyntax ) context . Node ;
192+ var parameterList = indexerDeclaration . ParameterList ;
300193
301- if ( indexerDeclaration . ParameterList == null ||
302- indexerDeclaration . ParameterList . IsMissing ||
303- ! indexerDeclaration . ParameterList . Parameters . Any ( ) )
194+ if ( parameterList == null || parameterList . IsMissing || ! parameterList . Parameters . Any ( ) )
304195 {
305196 return ;
306197 }
307198
308- var lastParameter = indexerDeclaration . ParameterList
309- . Parameters
310- . Last ( ) ;
199+ var lastParameter = parameterList . Parameters . Last ( ) ;
311200
312- if ( ! indexerDeclaration . ParameterList . CloseBracketToken . IsMissing )
313- {
314- CheckIfLocationOfLastArgumentOrParameterAndCloseTokenAreTheSame ( context , lastParameter , indexerDeclaration . ParameterList . CloseBracketToken ) ;
315- }
201+ CheckIfLocationOfLastArgumentOrParameterAndCloseTokenAreTheSame (
202+ context ,
203+ lastParameter ,
204+ parameterList . CloseBracketToken ) ;
316205 }
317206
318207 private static void HandleBaseMethodDeclaration ( SyntaxNodeAnalysisContext context )
319208 {
320209 var baseMethodDeclarationSyntax = ( BaseMethodDeclarationSyntax ) context . Node ;
210+ CheckParameterList ( context , baseMethodDeclarationSyntax . ParameterList ) ;
211+ }
212+
213+ private static void HandleLocalFunctionStatement ( SyntaxNodeAnalysisContext context )
214+ {
215+ var localFunctionStatementSyntax = ( LocalFunctionStatementSyntaxWrapper ) context . Node ;
216+ CheckParameterList ( context , localFunctionStatementSyntax . ParameterList ) ;
217+ }
321218
322- if ( baseMethodDeclarationSyntax . ParameterList == null ||
323- baseMethodDeclarationSyntax . ParameterList . IsMissing ||
324- ! baseMethodDeclarationSyntax . ParameterList . Parameters . Any ( ) )
219+ private static void CheckParameterList ( SyntaxNodeAnalysisContext context , ParameterListSyntax parameterList )
220+ {
221+ if ( parameterList == null || parameterList . IsMissing || ! parameterList . Parameters . Any ( ) )
325222 {
326223 return ;
327224 }
328225
329- var lastParameter = baseMethodDeclarationSyntax . ParameterList
330- . Parameters
331- . Last ( ) ;
226+ var lastParameter = parameterList . Parameters . Last ( ) ;
332227
333- if ( ! baseMethodDeclarationSyntax . ParameterList . CloseParenToken . IsMissing )
334- {
335- CheckIfLocationOfLastArgumentOrParameterAndCloseTokenAreTheSame ( context , lastParameter , baseMethodDeclarationSyntax . ParameterList . CloseParenToken ) ;
336- }
228+ CheckIfLocationOfLastArgumentOrParameterAndCloseTokenAreTheSame (
229+ context ,
230+ lastParameter ,
231+ parameterList . CloseParenToken ) ;
337232 }
338233
339- private static void HandleLocalFunctionStatement ( SyntaxNodeAnalysisContext context )
234+ private static void CheckArgumentList ( SyntaxNodeAnalysisContext context , ArgumentListSyntax argumentList )
340235 {
341- var localFunctionStatementSyntax = ( LocalFunctionStatementSyntaxWrapper ) context . Node ;
342-
343- if ( localFunctionStatementSyntax . ParameterList == null ||
344- localFunctionStatementSyntax . ParameterList . IsMissing ||
345- ! localFunctionStatementSyntax . ParameterList . Parameters . Any ( ) )
236+ if ( argumentList == null || argumentList . IsMissing || ! argumentList . Arguments . Any ( ) )
346237 {
347238 return ;
348239 }
349240
350- var lastParameter = localFunctionStatementSyntax . ParameterList
351- . Parameters
352- . Last ( ) ;
241+ var lastParameter = argumentList . Arguments . Last ( ) ;
353242
354- if ( ! localFunctionStatementSyntax . ParameterList . CloseParenToken . IsMissing )
355- {
356- CheckIfLocationOfLastArgumentOrParameterAndCloseTokenAreTheSame ( context , lastParameter , localFunctionStatementSyntax . ParameterList . CloseParenToken ) ;
357- }
243+ CheckIfLocationOfLastArgumentOrParameterAndCloseTokenAreTheSame (
244+ context ,
245+ lastParameter ,
246+ argumentList . CloseParenToken ) ;
358247 }
359248
360249 private static void CheckIfLocationOfLastArgumentOrParameterAndCloseTokenAreTheSame (
361250 SyntaxNodeAnalysisContext context ,
362251 CSharpSyntaxNode parameterOrArgument ,
363252 SyntaxToken closeToken )
364253 {
254+ if ( parameterOrArgument . IsMissing || closeToken . IsMissing )
255+ {
256+ return ;
257+ }
258+
365259 var lastParameterLine = parameterOrArgument . GetLineSpan ( ) ;
366260 var closeParenLine = closeToken . GetLineSpan ( ) ;
367261 if ( lastParameterLine . IsValid &&
0 commit comments