Skip to content

Commit b5992ef

Browse files
Simplify code in SA1111ClosingParenthesisMustBeOnLineOfLastParameter
1 parent f05e541 commit b5992ef

File tree

1 file changed

+59
-165
lines changed

1 file changed

+59
-165
lines changed

StyleCop.Analyzers/StyleCop.Analyzers/ReadabilityRules/SA1111ClosingParenthesisMustBeOnLineOfLastParameter.cs

Lines changed: 59 additions & 165 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)