Skip to content

Commit e6e357c

Browse files
committed
simplify patterns
1 parent 2ccb83c commit e6e357c

18 files changed

+76
-76
lines changed

PropertyChangedAnalyzers/Analyzers/ArgumentAnalyzer.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -126,11 +126,11 @@ when literal.IsKind(SyntaxKind.StringLiteralExpression) &&
126126
argument.TryGetStringValue(semanticModel, cancellationToken, out var text) &&
127127
Target() is { } target
128128
=> new NameContext(text, literal, target),
129-
{ Expression: InvocationExpressionSyntax { Expression: IdentifierNameSyntax { Identifier: { ValueText: "nameof" } }, ArgumentList: { Arguments: { Count: 1 } arguments } } }
129+
{ Expression: InvocationExpressionSyntax { Expression: IdentifierNameSyntax { Identifier.ValueText: "nameof" }, ArgumentList.Arguments: { Count: 1 } arguments } }
130130
when argument.TryGetStringValue(semanticModel, cancellationToken, out var text) &&
131131
Target() is { } target
132132
=> new NameContext(text, Expression(arguments[0]), target),
133-
{ Expression: ObjectCreationExpressionSyntax { ArgumentList: { Arguments: { Count: 1 } arguments } } objectCreation }
133+
{ Expression: ObjectCreationExpressionSyntax { ArgumentList.Arguments: { Count: 1 } arguments } objectCreation }
134134
when objectCreation.Type.IsSameType(KnownSymbol.PropertyChangedEventArgs, semanticModel) &&
135135
Create(arguments[0], semanticModel, cancellationToken) is { Name: { } name, Expression: { } expression } &&
136136
Target() is { } target

PropertyChangedAnalyzers/Analyzers/AssignmentAnalyzer.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,7 @@ context.Node is AssignmentExpressionSyntax assignment &&
4848
{
4949
case { ExpressionBody: { } }:
5050
return FindAssignedField();
51-
case { Body: { Statements: { } statements } }:
51+
case { Body.Statements: { } statements }:
5252
foreach (var statement in statements)
5353
{
5454
if (IsWhiteListedStatement(statement))

PropertyChangedAnalyzers/Analyzers/EventAnalyzer.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -41,13 +41,13 @@ context.ContainingSymbol is IEventSymbol eventSymbol &&
4141

4242
bool Shadows()
4343
{
44-
return eventSymbol is { ContainingType: { BaseType: { } baseType }, IsStatic: false, IsOverride: false } &&
44+
return eventSymbol is { ContainingType.BaseType: { } baseType, IsStatic: false, IsOverride: false } &&
4545
baseType.TryFindEventRecursive(eventSymbol.Name, out _);
4646
}
4747

4848
bool MissingInvoker()
4949
{
50-
if (eventSymbol is { IsStatic: false, ContainingType: { TypeKind: TypeKind.Class } } &&
50+
if (eventSymbol is { IsStatic: false, ContainingType.TypeKind: TypeKind.Class } &&
5151
eventSymbol == KnownSymbol.INotifyPropertyChanged.PropertyChanged &&
5252
OnPropertyChanged.Find(eventSymbol, context.SemanticModel, context.CancellationToken) is null)
5353
{

PropertyChangedAnalyzers/Analyzers/InvocationAnalyzer.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -25,8 +25,8 @@ public override void Initialize(AnalysisContext context)
2525
private static void Handle(SyntaxNodeAnalysisContext context)
2626
{
2727
if (!context.IsExcludedFromAnalysis() &&
28-
context.Node is InvocationExpressionSyntax { ArgumentList: { Arguments: { Count: 0 } } } invocation &&
29-
!(invocation.FirstAncestor<AccessorDeclarationSyntax>() is { Keyword: { ValueText: "set" } }) &&
28+
context.Node is InvocationExpressionSyntax { ArgumentList.Arguments.Count: 0 } invocation &&
29+
!(invocation.FirstAncestor<AccessorDeclarationSyntax>() is { Keyword.ValueText: "set" }) &&
3030
PropertyChanged.FindPropertyName(invocation, context.SemanticModel, context.CancellationToken) is { })
3131
{
3232
context.ReportDiagnostic(Diagnostic.Create(Descriptors.INPC009NotifiesForMissingProperty, invocation.GetLocation()));

PropertyChangedAnalyzers/Analyzers/MutationAnalyzer.cs

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,7 @@ private static void HandlePostfixUnaryExpression(SyntaxNodeAnalysisContext conte
4848
if (!context.IsExcludedFromAnalysis() &&
4949
!IsInIgnoredScope(context) &&
5050
context.Node is PostfixUnaryExpressionSyntax { Operand: { } operand } postfix &&
51-
context is { ContainingSymbol: { ContainingType: { } containingType } } &&
51+
context is { ContainingSymbol.ContainingType: { } containingType } &&
5252
AssignedExpression(containingType, operand) is { } backing)
5353
{
5454
Handle(postfix, backing, context);
@@ -60,7 +60,7 @@ private static void HandlePrefixUnaryExpression(SyntaxNodeAnalysisContext contex
6060
if (!context.IsExcludedFromAnalysis() &&
6161
!IsInIgnoredScope(context) &&
6262
context.Node is PrefixUnaryExpressionSyntax { Operand: { } operand } prefix &&
63-
context is { ContainingSymbol: { ContainingType: { } containingType } } &&
63+
context is { ContainingSymbol.ContainingType: { } containingType } &&
6464
AssignedExpression(containingType, operand) is { } backing)
6565
{
6666
Handle(prefix, backing, context);
@@ -72,7 +72,7 @@ private static void HandleAssignmentExpression(SyntaxNodeAnalysisContext context
7272
if (!context.IsExcludedFromAnalysis() &&
7373
!IsInIgnoredScope(context) &&
7474
context.Node is AssignmentExpressionSyntax { Left: { } left } assignment &&
75-
context is { ContainingSymbol: { ContainingType: { } containingType } } &&
75+
context is { ContainingSymbol.ContainingType: { } containingType } &&
7676
AssignedExpression(containingType, left) is { } backing)
7777
{
7878
Handle(assignment, backing, context);
@@ -85,7 +85,7 @@ private static void HandleArgument(SyntaxNodeAnalysisContext context)
8585
!IsInIgnoredScope(context) &&
8686
context.Node is ArgumentSyntax { Expression: { } expression } argument &&
8787
argument.RefOrOutKeyword.IsKind(SyntaxKind.RefKeyword) &&
88-
context is { ContainingSymbol: { ContainingType: { } containingType } } &&
88+
context is { ContainingSymbol.ContainingType: { } containingType } &&
8989
AssignedExpression(containingType, expression) is { } backing)
9090
{
9191
Handle(argument.Expression, backing, context);
@@ -94,7 +94,7 @@ private static void HandleArgument(SyntaxNodeAnalysisContext context)
9494

9595
private static void Handle(ExpressionSyntax mutation, ExpressionSyntax backing, SyntaxNodeAnalysisContext context)
9696
{
97-
if (context is { ContainingSymbol: { ContainingType: { } containingType } } &&
97+
if (context is { ContainingSymbol.ContainingType: { } containingType } &&
9898
containingType.IsAssignableTo(KnownSymbol.INotifyPropertyChanged, context.Compilation) &&
9999
mutation.TryFirstAncestorOrSelf<TypeDeclarationSyntax>(out var typeDeclaration))
100100
{
@@ -143,7 +143,7 @@ private static bool IsInIgnoredScope(SyntaxNodeAnalysisContext context)
143143
return context switch
144144
{
145145
{ ContainingSymbol: IMethodSymbol { Name: "Dispose" } } => true,
146-
{ Node: { Parent: ObjectCreationExpressionSyntax _ } } => true,
146+
{ Node.Parent: ObjectCreationExpressionSyntax _ } => true,
147147
{ ContainingSymbol: IMethodSymbol { MethodKind: MethodKind.Constructor } } => !context.Node.TryFirstAncestor<AnonymousFunctionExpressionSyntax>(out _),
148148
_ => false,
149149
};
@@ -169,7 +169,7 @@ IdentifierNameSyntax identifierName
169169
{
170170
return property switch
171171
{
172-
{ ExpressionBody: { Expression: { } expression } } => expression,
172+
{ ExpressionBody.Expression: { } expression } => expression,
173173
{ AccessorList: { } } when property.TryGetGetter(out var getter) => (SyntaxNode?)getter.Body ??
174174
getter.ExpressionBody,
175175
_ => null,

PropertyChangedAnalyzers/Analyzers/PropertyDeclarationAnalyzer.cs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -104,8 +104,8 @@ bool IsProperty(ExpressionSyntax expression)
104104

105105
return expression switch
106106
{
107-
IdentifierNameSyntax { Identifier: { ValueText: { } name } } => property.Name == name,
108-
MemberAccessExpressionSyntax { Expression: ThisExpressionSyntax _, Name: { Identifier: { ValueText: { } name } } } => property.Name == name,
107+
IdentifierNameSyntax { Identifier.ValueText: { } name } => property.Name == name,
108+
MemberAccessExpressionSyntax { Expression: ThisExpressionSyntax _, Name.Identifier.ValueText: { } name } => property.Name == name,
109109
_ => false,
110110
};
111111
}
@@ -177,9 +177,9 @@ private static bool ShouldBeExpressionBody(AccessorDeclarationSyntax accessor)
177177
{
178178
return accessor switch
179179
{
180-
{ Keyword: { ValueText: "get" }, Body: { Statements: { Count: 1 } statements } }
180+
{ Keyword.ValueText: "get", Body.Statements: { Count: 1 } statements }
181181
=> statements[0].IsKind(SyntaxKind.ReturnStatement),
182-
{ Keyword: { ValueText: "set" }, Body: { Statements: { Count: 1 } statements } }
182+
{ Keyword.ValueText: "set", Body.Statements: { Count: 1 } statements }
183183
=> statements[0].IsKind(SyntaxKind.ExpressionStatement),
184184
_ => false,
185185
};

PropertyChangedAnalyzers/Analyzers/SetAccessorAnalyzer.cs

Lines changed: 14 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@ private static void Handle(SyntaxNodeAnalysisContext context)
4141
{
4242
switch (setter)
4343
{
44-
case { ExpressionBody: { Expression: { } expression } }
44+
case { ExpressionBody.Expression: { } expression }
4545
when Setter.MatchAssign(expression, context.SemanticModel, context.CancellationToken) is { Member: { } member }:
4646
if (Property.ShouldNotify(containingProperty, property, context.SemanticModel, context.CancellationToken))
4747
{
@@ -58,7 +58,7 @@ when Setter.MatchAssign(expression, context.SemanticModel, context.CancellationT
5858
}
5959

6060
break;
61-
case { ExpressionBody: { Expression: { } expression } }
61+
case { ExpressionBody.Expression: { } expression }
6262
when Setter.MatchTrySet(expression, context.SemanticModel, context.CancellationToken) is { Member: { } member }:
6363
if (ReturnsDifferent(member, context))
6464
{
@@ -107,8 +107,8 @@ bool ShouldCheck()
107107
}
108108

109109
if (Attribute.TryFind(containingProperty, KnownSymbol.BindableAttribute, context.SemanticModel, context.CancellationToken, out var bindable) &&
110-
bindable is { ArgumentList: { Arguments: { Count: 1 } arguments } } &&
111-
arguments[0] is { Expression: LiteralExpressionSyntax { Token: { ValueText: "false" } } })
110+
bindable is { ArgumentList.Arguments: { Count: 1 } arguments } &&
111+
arguments[0] is { Expression: LiteralExpressionSyntax { Token.ValueText: "false" } })
112112
{
113113
return false;
114114
}
@@ -133,7 +133,7 @@ private static void HandleBody(BlockSyntax body, SyntaxNodeAnalysisContext conte
133133
Descriptors.INPC010GetAndSetSame,
134134
body.FirstAncestor<PropertyDeclarationSyntax>()!.Identifier.GetLocation()));
135135
}
136-
else if (equalState is { MemberAndValue: { Member: { } checkedMember } } &&
136+
else if (equalState is { MemberAndValue.Member: { } checkedMember } &&
137137
AreDifferent(checkedMember, mutatedMember, context))
138138
{
139139
context.ReportDiagnostic(
@@ -188,7 +188,7 @@ void HandleEquality(ExpressionSyntax condition)
188188
{
189189
switch (condition)
190190
{
191-
case PrefixUnaryExpressionSyntax { OperatorToken: { ValueText: "!" }, Operand: InvocationExpressionSyntax invocation }:
191+
case PrefixUnaryExpressionSyntax { OperatorToken.ValueText: "!", Operand: InvocationExpressionSyntax invocation }:
192192
HandleInvocation(invocation);
193193
break;
194194
case InvocationExpressionSyntax invocation:
@@ -250,7 +250,7 @@ void HandleInvocation(InvocationExpressionSyntax invocation)
250250

251251
if (Equality.IsInstanceEquals(invocation, context.SemanticModel, context.CancellationToken, out _, out _) &&
252252
(ContainingProperty().Type.IsReferenceType ||
253-
ContainingProperty().Type is { OriginalDefinition: { SpecialType: SpecialType.System_Nullable_T } }))
253+
ContainingProperty().Type is { OriginalDefinition.SpecialType: SpecialType.System_Nullable_T }))
254254
{
255255
context.ReportDiagnostic(
256256
Diagnostic.Create(
@@ -300,7 +300,7 @@ when Setter.MatchTrySet(trySet, context.SemanticModel, context.CancellationToken
300300
mutation = match;
301301
equalState = new EqualState(trySet, match, false);
302302
return WalkIfStatement(ifStatement);
303-
case IfStatementSyntax { Condition: PrefixUnaryExpressionSyntax { OperatorToken: { ValueText: "!" }, Operand: InvocationExpressionSyntax trySet } } ifStatement
303+
case IfStatementSyntax { Condition: PrefixUnaryExpressionSyntax { OperatorToken.ValueText: "!", Operand: InvocationExpressionSyntax trySet } } ifStatement
304304
when Setter.MatchTrySet(trySet, context.SemanticModel, context.CancellationToken) is { } match:
305305
mutation = match;
306306
equalState = new EqualState(trySet, match, true);
@@ -309,7 +309,7 @@ when Setter.MatchTrySet(trySet, context.SemanticModel, context.CancellationToken
309309
when Setter.MatchAssign(assignment, context.SemanticModel, context.CancellationToken) is { } match:
310310
mutation = match;
311311
return true;
312-
case ExpressionStatementSyntax { Expression: AssignmentExpressionSyntax { Left: IdentifierNameSyntax { Identifier: { ValueText: "_" } }, Right: { } right } }
312+
case ExpressionStatementSyntax { Expression: AssignmentExpressionSyntax { Left: IdentifierNameSyntax { Identifier.ValueText: "_" }, Right: { } right } }
313313
when Setter.MatchTrySet(right, context.SemanticModel, context.CancellationToken) is { } match:
314314
mutation = match;
315315
return true;
@@ -376,9 +376,9 @@ private static bool ReturnsDifferent(ExpressionSyntax assignedMember, SyntaxNode
376376
{
377377
return getter switch
378378
{
379-
{ ExpressionBody: { Expression: { } get } }
379+
{ ExpressionBody.Expression: { } get }
380380
=> AreDifferent(get, assignedMember, context),
381-
{ Body: { Statements: { Count: 0 } statements } }
381+
{ Body.Statements: { Count: 0 } statements }
382382
when statements[0] is ReturnStatementSyntax { Expression: { } get }
383383
=> AreDifferent(get, assignedMember, context),
384384
{ Body: { } body }
@@ -461,9 +461,9 @@ internal static EqualState Create(ExpressionSyntax condition, BackingMemberAndVa
461461
return e switch
462462
{
463463
InvocationExpressionSyntax _ => true,
464-
BinaryExpressionSyntax { OperatorToken: { ValueText: "==" } } => true,
465-
BinaryExpressionSyntax { OperatorToken: { ValueText: "!=" } } => false,
466-
PrefixUnaryExpressionSyntax { OperatorToken: { ValueText: "!" }, Operand: { } operand } => !Equal(operand),
464+
BinaryExpressionSyntax { OperatorToken.ValueText: "==" } => true,
465+
BinaryExpressionSyntax { OperatorToken.ValueText: "!=" } => false,
466+
PrefixUnaryExpressionSyntax { OperatorToken.ValueText: "!", Operand: { } operand } => !Equal(operand),
467467
_ => null,
468468
};
469469
}

0 commit comments

Comments
 (0)