Skip to content

Commit e0941d1

Browse files
committed
ValidateValueCallback
1 parent ca0dc71 commit e0941d1

2 files changed

Lines changed: 28 additions & 1 deletion

File tree

WpfAnalyzers/Analyzers/RegistrationAnalyzer.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ context.Node is InvocationExpressionSyntax invocation &&
3636
register.PropertyName(context.SemanticModel, context.CancellationToken) is { } registeredName)
3737
{
3838
if (register.FindArgument(KnownSymbols.ValidateValueCallback) is { } validateValueCallback &&
39-
Callback.Match(validateValueCallback, KnownSymbols.ValidateValueCallback, context.SemanticModel, context.CancellationToken) is { Identifier: { } identifier, Target: { } target })
39+
ValidateValueCallback.Match(validateValueCallback, context.SemanticModel, context.CancellationToken) is { Identifier: { } identifier, Target: { } target })
4040
{
4141
if (TypeSymbolComparer.Equal(target.ContainingType, context.ContainingSymbol.ContainingType) &&
4242
!MatchesValidateValueCallbackName(validateValueCallback, target, context))
Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
namespace WpfAnalyzers;
2+
3+
using System.Threading;
4+
using Microsoft.CodeAnalysis;
5+
using Microsoft.CodeAnalysis.CSharp.Syntax;
6+
7+
internal readonly struct ValidateValueCallback
8+
{
9+
internal readonly IdentifierNameSyntax Identifier;
10+
internal readonly IMethodSymbol Target;
11+
12+
internal ValidateValueCallback(IdentifierNameSyntax identifier, IMethodSymbol target)
13+
{
14+
this.Identifier = identifier;
15+
this.Target = target;
16+
}
17+
18+
internal static ValidateValueCallback? Match(ArgumentSyntax callback, SemanticModel semanticModel, CancellationToken cancellationToken)
19+
{
20+
if (Callback.Match(callback, KnownSymbols.ValidateValueCallback, semanticModel, cancellationToken) is { } match)
21+
{
22+
return new ValidateValueCallback(match.Identifier, match.Target);
23+
}
24+
25+
return null;
26+
}
27+
}

0 commit comments

Comments
 (0)