-
Notifications
You must be signed in to change notification settings - Fork 10
Open
Description
Before:
internal static bool FindSingle(IFieldSymbol field, SemanticModel semanticModel, CancellationToken cancellationToken, [NotNullWhen(true)] out ExpressionSyntax? expression)
{
expression = null;
if (field.IsReadOnly &&
field.TrySingleDeclaration(cancellationToken, out VariableDeclarationSyntax? declaration) &&
declaration.Variables.TrySingle(out var variable))
{
using var walker = MutationWalker.For(field, semanticModel, cancellationToken);
if (walker.IsEmpty)
{
expression = variable.Initializer?.Value;
return expression != null;
}
if (variable.Initializer is null &&
walker.TrySingle(out var node) &&
node.Parent is AssignmentExpressionSyntax assignment)
{
expression = assignment.Right;
return expression != null;
}
return false;
}
return false;
}After
internal static ExpressionSyntax? FindSingle(IFieldSymbol field, SemanticModel semanticModel, CancellationToken cancellationToken)
{
if (field.IsReadOnly &&
field.TrySingleDeclaration(cancellationToken, out VariableDeclarationSyntax? declaration) &&
declaration.Variables.TrySingle(out var variable))
{
using var walker = MutationWalker.For(field, semanticModel, cancellationToken);
if (walker.IsEmpty)
{
return variable.Initializer?.Value;
}
if (variable.Initializer is null &&
walker.TrySingle(out var node) &&
node.Parent is AssignmentExpressionSyntax assignment)
{
return assignment.Right;
}
return null;
}
return null;
}Metadata
Metadata
Assignees
Labels
No labels